客户端不断重新连接

问题描述:

我的.net应用程序连接到信号中心不断重新连接。客户端不断重新连接

此问题只发生在某些其他企业网络,这使我相信某些东西被阻止。 我试过使用来自同一网络的jabbr.net网站,这也不起作用(在铬)。

我该如何追踪/解决这个问题?

enter image description here

我认为你遇到这个问题https://github.com/SignalR/SignalR/pull/1553。我们正在为它修复。当服务器发送事件请求超时但实际的http请求仍在进行时,会发生此问题。接下来发生的事情是,长时间传输和服务器发送事件http请求为连接而战。

要解决此问题,您可以专门指定LongPollingTransport。我们将考虑为下一个版本解决这个问题。

+0

解决方法非常有帮助,非常感谢! – UnreliableWitness 2013-02-22 08:34:58

+2

该错误已修复,将在下一个版本中发布https://github.com/SignalR/SignalR/commit/0a6ff146d482470297e92ccc3e7702ee0ae1eede – davidfowl 2013-02-22 11:37:55

+0

我在.NET 4.0的.NET信号客户端版本2.2.1.0中遇到了同样的问题。我通过将SSE设置为协议来启动客户端。当@davidfowl描述发生时,客户端会经历连续的连接,处理,停止并立即重新连接,处理,停止。我没有看到客户端在LongPollingTransport和SSE之间切换 - 只停留在SSE。启动客户端后,我附加了一个ContinueWith来检测异常/任务故障。 IIRC,删除ContinueWith帮助在一点,但我喜欢保持它,不想处理Task.wait()周围的异常。 – hexterminator 2016-11-20 19:58:58

对于服务器,在你的web.config的System.Diagnostics程序部分添加:

<sharedListeners> 
    <add name="SignalR" 
     type="System.Diagnostics.TextWriterTraceListener" 
     initializeData="signalr.log.txt" /> 
</sharedListeners> 

对于你的客户(我假设.NET C#),它的记录是通过调试。写。此外,我建议挂钩到您的连接错误处理程序。

如果您使用JS客户端,您可以打开登录通过

// Non dynamically made connection 
connection.logging = true; 
// Dynamically made connection 
$.connection.hub.logging = true 

希望这有助于!