我已经看到了如何通过绑定到.disconnect事件来捕获客户端与SignalR的断开连接事件 .
现在我已经完成了这个,我想让客户端进入“等待重新连接循环”,它不断尝试连接,直到成功或用户取消 . 集线器是否公开连接状态属性?我在想(伪代码)
var isConnected;
function onConnected() { isConnected = true; }
hub.disconnect = function() { while(hub.notconnected) { connect(); }
2 回答
JS客户端尝试重新连接一段时间,默认为110秒 . 您可以订阅connection.stateChanged事件,并获取有关状态更改的更新,以便您可以将其显示给用户,或验证SignalR对不同断开连接方案的响应 .
在我的测试中,状态已正确更新为断开连接和重新连接等,正如您所期望的那样 .
More information on signalr connections
客户端总是试图连接 . 你不必担心这一点 . 如果您想在成功重新 Build 连接时执行某些操作,则可以监听重新连接的事件 .
编辑:此更改,客户端只尝试在一段时间内重新连接 . 之后,您必须捕获断开连接事件并手动重新启动 .