1. 程式人生 > 實用技巧 >websocket 心跳重連

websocket 心跳重連

WebSocket是什麼

websocket作用是來做訊息的實時推送

websocket的基本事件有onopen、onmessage、onerror、onclose這四個事件,onopen是連線已開啟,且可以通訊,onmessage是收到訊息,onerror是websocket發生錯誤,onclose是websocket連線關閉。

為什麼會進行心跳檢測

檢測websocket是否線上

簡單地說就是:為了證明客戶端與服務端的連線是否活著。websocket 在使用過程中,如果遭遇網路問題等,這個時候服務端沒有觸發onclose事件,這樣會產生多餘的連線,並且服務端會繼續傳送訊息給客戶端,造成資料丟失。因此需要一種機制來檢測客戶端和服務端是否處於正常連線的狀態,心跳檢測和重連機制就產生了。

怎麼進行心跳檢測和重連

  1. 每隔一段指定的時間(計時器),向伺服器傳送一個數據,伺服器收到資料後再發送給客戶端,正常情況下客戶端通過onmessage事件是能監聽到伺服器返回的資料的,說明請求正常。
  2. 如果再這個指定時間內,客戶端沒有收到伺服器端返回的響應訊息,就判定連線斷開了,使用websocket.close關閉連線。
  3. 這個關閉連線的動作可以通過onclose事件監聽到,因此在 onclose 事件內,我們可以呼叫reconnect事件進行重連操作。

程式碼實現:https://blog.csdn.net/zcq_1234/article/details/103101877

     https://www.cnblogs.com/buxiugangzi/p/11379883.html