首先在created定義心跳檢測對象
that.websock.send("ping") send方法是webscoket自帶的一種給服務器發送消息的方法
that.heartCheck = heartCheck 表示把heartCheck對象等於在data上面定義的heartCheck 對象
然後把原來的heartCheck = null 來釋放掉 避免內存泄露
that.initWebpack() 表示webscoket初始化
在webscoket接收消息中 開啓心跳檢測this.heartCheck.start()
注意 心跳檢測重連主要是在websocketclose websocketerror這兩個這兩個函數裏面發生
在網絡斷開的時候服務器端並沒有觸發onclose的事件。這樣會有:服務器會繼續向客戶端發送多餘的鏈接,並且這些數據還會丟失。所以就需要一種機制來檢測客戶端和服務端是否處於正常的鏈接狀態。因此就有了websocket的心跳了。還有心跳,說明還活着,沒有心跳說明已經掛掉了。所以需要心跳重連
在網絡斷開 或者發生錯誤的時候webscoket會觸發兩個函數
this.lockReconnect 表示是否已經重連的開關避免請求過多
this.webscoketFlag 表示是否爲登錄頁面 如果是登錄頁面退出就不需要重連
注意 在退出的時候需要斷開webscoket this.websock.close()而不是this.websock.onclose() onclose()表示webscoket關閉後的回調而已 如果想要關閉webscoket 使用webscoket.close