我已经看到如何通过绑定到.disconnect事件来在SignalR客户端捕获断开连接事件。SignalR:检测客户端的连接状态
现在我已经完成了这个工作,我想让客户端进入一个“等待重新连接的循环”,它不断尝试连接,直到成功或用户取消。中心是否公开连接状态属性?我在想像(伪代码)
var isConnected;
function onConnected() { isConnected = true; }
hub.disconnect = function() { while(hub.notconnected) { connect(); }
我不认为这是完全正确的。如果我失去了连接到我的服务器,它最终会放弃尝试重新连接,并强迫我手动重新启动连接。我不会说它总是试图重新连接。 – KingOfHypocrites 2014-05-01 11:53:25
请注意,可能的状态在'$ .signalR.connectionState'上枚举,例如'$ .signalR.connectionState.connected'。您可以看到'stateChanged' [here]的当前用法(https://github.com/SignalR/SignalR/wiki/SignalR-JS-Client#connectionstatechanged-handlerchange-) – 2014-06-26 15:31:49
查看客户端[code](https: //github.com/SignalR/SignalR/blob/master/src/Microsoft.AspNet.SignalR.Client.JS/jquery.signalR.transports.longPolling.js),我没有找到任何可能会停止的条件一段时间后重新连接。但是,有一个退避计算会导致失败的重新连接尝试之间的时间越来越长,直到连接成功。所以我相信,只要页面JS在浏览器中处于活动状态,它就会试图“永远”重新连接。 – Mazrick 2014-09-09 14:06:22