微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么SignalR Server发送事件SSE传输每分钟重复连接一次?

如何解决为什么SignalR Server发送事件SSE传输每分钟重复连接一次?

我们正在使用在Windows Server 2016,IIS 10上运行的Microsoft.AspNet SignalR Version = 2.4.1.0。在日志中,我们看到客户端向我们发送连接请求以建立WebSocket连接,并且服务器返回HTTP状态代码101。之后,我们立即收到另一个连接请求以建立SSE连接。 SSE连接几乎每分钟都会终止,并且有一个新的协商,连接(WebSocket),连接(SSE)和启动请求的周期。 这是在我们的服务器上配置的SignalR设置。

ConnectionTimeout = 60s
disconnectTimeout = 10秒
KeepAlive = 3s
TransportConnectTimeout = 30秒

以下是请求在日志中的显示方式。有两个连接请求。第一个连接请求用于WebSocket,第二个连接请求用于SSE。


Time                         Request
2020-09-26 00:47:46.4422081 /signalr/negotiate
2020-09-26 00:47:46.6668475 /signalr/connect
2020-09-26 00:48:06.6426133 /signalr/connect
2020-09-26 00:48:06.7032692 /signalr/start
2020-09-26 00:48:06.7768225 /signalr/send
2020-09-26 00:48:06.7950440 /signalr/send
2020-09-26 00:48:51.7756981 /signalr/negotiate
2020-09-26 00:48:52.0176240 /signalr/connect
2020-09-26 00:48:52.1911200 /signalr/connect
2020-09-26 00:48:52.3027074 /signalr/start
2020-09-26 00:48:52.3556187 /signalr/send
2020-09-26 00:48:52.3799213 /signalr/send
2020-09-26 00:49:49.6689214 /signalr/negotiate
2020-09-26 00:49:49.8595736 /signalr/connect
2020-09-26 00:50:03.6478671 /signalr/connect
2020-09-26 00:50:03.6946264 /signalr/start
2020-09-26 00:50:03.7516878 /signalr/send
2020-09-26 00:50:03.7753066 /signalr/send
2020-09-26 00:51:04.1870549 /signalr/negotiate

在第一个连接(WebSocket)请求之后,我们还看到记录了以下错误-“ SignalR.Transports.WebSocketTransport错误:0:System.Net.WebSockets.WebSocketException(0x80070026):已到达文件末尾”。 / p>

此后,我们收到第二个连接(SSE)。我们发现SSE传输的连接请求的HTTP连接标头值为“ close”。

94%的连接正在使用WebSocket传输。 5%的连接正在使用SSE传输并且存在上述问题。

是什么原因导致传输从WebSocket过渡到SSE?
为什么SSE传输每隔1分钟中断一次,然后重新连接?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。