SignalR奇怪的重新连接模式

Sib*_*Guy 11 .net asp.net-mvc signalr

我正在使用SignalR在非常特定的网络条件下(一个疯狂的代理).所以套接字根本不起作用,我必须使用长轮询.当我刷新页面时,它似乎工作了一段时间,但第一次Disconnect发生了.我正在尝试自动重新连接断开连接的事件和以下模式:

  1. 页面加载后,集线器在大约110秒内断开连接(默认超时)
  2. 第一次断开连接后,需要3个Disconnected事件才能重新启动集线器(因此它仅在第4次尝试时连接)
  3. 之后,它总是在第一次尝试时重新连接,但在大约10-15秒(不是110秒)后断开连接.因此看起来保持活动超时以某种方式在这里被调用(虽然它不是第一次尝试).

这种行为似乎很奇怪.我能做些什么来改善它吗?

Ami*_*rzi 2

假设了解和处理 SignalR 中的连接生命周期事件中提供的提示,您可以在其中采用良好的解决方案来根据网络问题处理连接生命周期。此外,在 SignalR 的问题中,我为您找到了以下解决方案,它也适用于长轮询。

您可以设置该KeepAlive属性ConfigurationManager,SignalR 将按照指定的时间间隔发送一个空数据帧(基于传输)以保持连接处于活动状态(请参阅允许主机指定保持活动时间)。当前的超时机制使流协议没有什么不同。