我们在ASE中使用Signal R和Azure Web应用程序来实现我们的实时Web应用程序。 我们注意到Signal R有时会以无特殊模式失去与集线器的连接。 这种情况在高流量时段和低流量时段都会发生,但我更感兴趣的是为什么我会在低流量时段发生这种情况。 注意:我们有一个所谓的" 1分钟自动刷新"这是由页面上的JavaScript触发的。这似乎有效。
使用SignalR的任何人都遇到过类似的问题,如果是这样,你是如何解决这个问题的?
谢谢 (一个测试员,不要太苛刻!哈哈)
答案 0 :(得分:0)
我确实经历过这一点,它让我疯狂。
默认情况下,SignalR客户端在失去与Hub的连接后将尝试重新连接20秒。在没有成功重新连接的情况下20秒后,在JavaScript客户端上引发了断开连接的事件。在引发断开连接后,客户端将放弃尝试重新连接并且连接已停止。 This page描述了SignalR生命周期事件,并提供了在引发断开连接的事件后尝试重新连接的一些代码。
现在为什么会这样。我注意到某些应用程序中的应用程序池回收可能需要超过20秒,这可能会导致事件断开连接。 JavaScript客户端和Hub之间的网络连接间歇性下降持续时间超过20秒也会导致此问题。最重要的是,事情可能会出错,超出您的控制范围,您无法围绕它们进行编码。因此,在JavaScript客户端收到断开连接的事件后,请尝试重新连接的逻辑。