websocket 心跳重连
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