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

posted @ 2020-08-24 18:58  云悠  阅读(709)  评论(0编辑  收藏  举报