Javascript客户端的Stoping SignalR连接速度很慢(大约30秒)。
我使用SignalR,版本2.0.1(但在2.0.0中重现的问题)用于集成到ASP.NET站点的webchat。我有一个.NET SignalR客户端(出于其他原因)和许多JS客户端(聊天客户端)。我的测试用例非常简单。我想禁用ASP.NET页面上的聊天。出于这个原因,我尝试使用下一个代码停止SignalR连接:
$.connection.hub.stop();
但onDisconnected方法(在集线器上)仅在30秒后调用。我认为连接是通过断开连接超时而不是Javascript代码停止的。我默认使用LongPolling运输。
var initObject = { transport: ["longPolling", "webSockets", "foreverFrame", "serverSentEvents"] };
$.connection.hub.start(initObject).done(function () {
...
}
问题在Google Chrome的最新版本中重现,但在IE和Mozilla中运行良好。 SignalR如此奇怪的行为有什么原因,我该如何避免呢?
答案 0 :(得分:0)
conn.disconnect();
conn.stop();
hub.subscribe(null);
conn = null;
hub= null;
尝试这个,让我知道它是否有效。虽然它在android中工作。
答案 1 :(得分:0)
通过将SignalR版本更新为2.0.3来解决问题。
答案 2 :(得分:0)
对于遇到此问题的其他人,只需使用conn.Stop(new TimeSpan(0))
即可终止连接。