信号R随机失去与服务器端的连接

Ire*_*ren 5 connection azure signalr

我们将Signal R与ASE中的Azure Web应用程序一起用于实时Web应用程序。我们注意到,信号R有时会以某种特定的方式失去与集线器的连接。在高流量和低流量期间都会发生这种情况,但我对为什么在低流量期间会发生这种情况更感兴趣。注意:我们有一个所谓的“ 1分钟自动刷新”,它由页面上的JavaScript触发。那似乎行得通。

任何人使用SignalR都会遇到类似的问题,如果是这样,您如何解决此问题?

谢谢(测试人员,请不要太苛刻!大声笑)

Rob*_*gan 1

我确实经历过这一点,这让我发疯。

默认情况下,SignalR 客户端在失去与其集线器的连接后将尝试重新连接 20 秒。20 秒后没有成功重新连接,JavaScript 客户端上会引发断开连接事件。引发断开连接后,客户端将放弃尝试重新连接,并且连接已终止。本页面介绍了 SignalR 生命周期事件,并提供了一些有关在引发断开连接事件后尝试重新连接的代码。

现在说说为什么会发生这种情况。我注意到,在某些应用程序中,应用程序池回收可能需要超过 20 秒的时间,这可能会导致断开连接事件。JavaScript 客户端和 Hub 之间的网络连接持续超过 20 秒的间歇性下降也可能导致此问题。最重要的是,事情可能会出现超出您控制范围的错误,并且您无法围绕它们进行编码。因此,请设置逻辑以在 JavaScript 客户端收到断开连接事件后尝试重新连接。