websocket中的心跳重连机制

WebSocket心跳重连机制旨在检测客户端与服务器的连接状态。通过定时发送数据到服务器,若在预设时间内未收到响应,则认为连接断开,关闭连接并在onclose事件中触发重连操作。尽管TCP有keepalive机制,但无法准确反映客户端异常情况,且在应用层进行控制更为灵活。
摘要由CSDN通过智能技术生成

websocket中的心跳重连机制目的:检测客户端和服务端是否处于正常连接的状态。
思路:

  1. 每隔一段指定的时间(定时器),向服务器发送一个数据,服务器收到数据后再发送给客户端,正常情况下客户端通过onmessage事件是能监听到服务器返回的数据,说明请求正常。
  2. 如果在这个指定时间内,客户端没有收到服务器返回的响应消息,就判断连接断开了,使用websocket.close关闭连接。
  3. 这个关闭连接的动作可以通过onclose事件监听到,因此在onclose事件内,我们可以调用reconnect事件进行重连操作。
//思路
//1.每隔一段指定的时间(定时器),向服务器发送一个数据,服务器收到数据后再发送给客户
//端,正常情况下客户端通过onmessage事件是能监听到服务器返回的数据,说明请求正常。
//2.如果在这个指定时间内,客户端没有收到服务器返回的响应消息,就判断连接断开了,使用websocket.close关闭连接。
//3.这个关闭连接的动作可以通过onclose事件监听到,因此在onclose事件内,我们可以调用reconnect事件进行重连操作。

//关键词:
//定时器、onmessage事件、onclose事件、reconnect事件


let ws = null;          // 判断当前浏览器是否支持WebSocket
let wsUrl = myurl;
createWebsocket(wsUrl);  //连接ws

//2.1通过createWebsocket创建连接
function createWebsocket(wsUrl) {
   
    try {
   
        //检查兼容性
        if('WebSocket' in window){
   
            ws = new WebSocket(wsUrl);
        }else if('MozWebSocket' in window){
     
            ws = new MozWebSocket(wsUrl);
        }else
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值