Websocket心跳重連

2021-08-21 10:28:59 字數 875 閱讀 5207

websocket心跳重連

最近的工作業務上有用到關於websocket的相關知識,本來打算用socket.io去完成,但是最後還是採用了自帶的websocket的方式完成需求

this.websocket.binarytype = "arraybuffer";
現在想象一下有這麼乙個場景,如果網路狀態不佳,web端和伺服器的websocket突然斷了一次,整個邏輯都會被毀,所以我們採用心跳重連的方式去重新連線

到這裡就可以肯定能夠心跳重連了

但是還需要考慮乙個事情,就是當你的網路狀態不佳時,它會嘗試一直連線到所以我們需要設定乙個limittime

this.websocket.addeventlistener('close', () => 

}) this.websocket.addeventlistener('close', () =>

})

對應的open也要修改

this.websocket.addeventlistener('open', (event) => )
當然如果重新連線成功了,就沒必要傳送重連了,所以再新增乙個字段
this.websocket.addeventlistener('open', (event) => )
修改後的close

this.websocket.addeventlistener('close', () => 

}})

到這裡就大功告成了!

websocket 心跳重連

websocket是什麼 websocket作用是來做訊息的實時推送 websocket的基本事件有onopen onmessage onerror onclose這四個事件,onopen是連線已開啟,且可以通訊,onmessage是收到訊息,onerror是websocket發生錯誤,onclos...

websocket心跳重連機制

1 心跳重連的原因 心跳和重連的目的用一句話概括就是客戶端和服務端保證彼此還活著,避免丟包發生。websocket斷開有兩種情況 前端斷開 在使用websocket過程中,可能會出現網路斷開的情況,比如訊號不好,或者網路臨時關閉,這時候websocket的連線已經斷開,而不同瀏覽器有不同的機制,觸發...

實現websocket心跳重連

var userid userid val var lockreconnect false 避免ws重複連線 var ws null 判斷當前瀏覽器是否支援websocket var wsurl serverconfig.cyberhouse ws userid createwebsocket ws...