websocket 心跳重連
阿新 • • 發佈:2020-08-24
WebSocket是什麼
websocket作用是來做訊息的實時推送
websocket的基本事件有onopen、onmessage、onerror、onclose這四個事件,onopen是連線已開啟,且可以通訊,onmessage是收到訊息,onerror是websocket發生錯誤,onclose是websocket連線關閉。
為什麼會進行心跳檢測
檢測websocket是否線上
簡單地說就是:為了證明客戶端與服務端的連線是否活著。websocket 在使用過程中,如果遭遇網路問題等,這個時候服務端沒有觸發onclose
事件,這樣會產生多餘的連線,並且服務端會繼續傳送訊息給客戶端,造成資料丟失。因此需要一種機制來檢測客戶端和服務端是否處於正常連線的狀態,心跳檢測和重連機制就產生了。
怎麼進行心跳檢測和重連
- 每隔一段指定的時間(計時器),向伺服器傳送一個數據,伺服器收到資料後再發送給客戶端,正常情況下客戶端通過
onmessage
事件是能監聽到伺服器返回的資料的,說明請求正常。 - 如果再這個指定時間內,客戶端沒有收到伺服器端返回的響應訊息,就判定連線斷開了,使用
websocket.close
關閉連線。 - 這個關閉連線的動作可以通過
onclose
事件監聽到,因此在 onclose 事件內,我們可以呼叫reconnect
事件進行重連操作。
程式碼實現:https://blog.csdn.net/zcq_1234/article/details/103101877
https://www.cnblogs.com/buxiugangzi/p/11379883.html