我已經看到如何通過綁定到.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