我有一個運行SignalR,Angular和Typescript的頁面。當電流$scope
被破壞(如換頁),我嘗試從SignalR服務器斷開連接客戶端:
Controller.ts
$scope.$on("$destroy",() => Service.Disconnect());
我的前端服務則具有這樣的功能:
Service.ts
public Disconnect() {
this.hub.disconnect();
}
小號o當我改變頁面時,客戶端從集線器斷開。正如我在控制檯中所看到的那樣,這完美地工作:
SignalR:停止連接。 SignalR:關閉Websocket。
SignalR:觸發ajax abort async = true。
SignalR:停止保持活動狀態的監視。
完美地工作。然而,當我然後加載一個新的狀態,並且我的連接再次被設置時,舊連接以某種方式「保持」,因爲它然後嘗試連接兩次。如果我然後再轉到其他頁面,它會嘗試連接3次。
編輯
這似乎是stateChanged
被調用多次。多次調用連接設置的次數。嗯,我想知道爲什麼當我將客戶端從集線器斷開連接時。修正了一個簡單的if already connected
變量,我設置了第一次連接,但它不是很好。
有沒有正確的方法來斷開客戶端?服務器/後端集線器是否也應該處理斷開連接?除$scope
被毀壞之外,我還需要做其他事情嗎?
你有沒有找到一個適當的斷開樞紐。在Ionic 2中,我遇到了同樣的問題,信號發生器 –
您是否找到解決此問題的解決方案?我遇到完全相同的問題。 – Flyingkiwi