分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

webSocket使用心跳包实现断线重连

发布时间:2023-09-06 02:35责任编辑:顾先生关键词:暂无标签

首先new一个webscoket的连接

 this.noticeSocketLink = new WebSocket(‘webSocket的地址’)

这里是连接成功之后的操作

linkNoticeWebsocket(){

        this.noticeSocketLink.onopen = ()=>{

  在连接成功打开的时候调用断线重连的函数

          this.webCloseLink(this.noticeSocketLink)

        }

        this.noticeSocketLink.onmessage = res => {}

        this.noticeSocketLink.onclose = res => {

          console.log("websocket is closed")

        }

      },

//断开连接,断线重连的函数
?????webCloseLink(WebSocketId){
  WebSocketId.send("心跳包内容")
???????  // 每个15秒发送一次心跳包
???????  let hb = setInterval(()=>{
?????????    WebSocketId.send("心跳包内容")
?????????    // 检测到websocket连接断开
?????????    if(WebSocketId.readyState == 2 || WebSocketId.readyState == 3){
?????????????      clearInterval(this.hb)
?????????????      let i = 1
???????????????      let myVar = setInterval(()=>{
?????????????????        if(WebSocketId.readyState == 2 || WebSocketId.readyState == 3){
???????????????????          // 重新new一个websocket的连接
???????????????????          this.noticeSocketLink = new WebSocket(WebSocketId.url);
???????????????????          WebSocketId = this.noticeSocketLink;
???????????????????          if(i == 5){
???????????????????????            clearInterval(myVar);
???????????????????????            // location.reload();
???????????????????????            return
???????????????????          }
???????????????????          i++
?????????????????        }else if(WebSocketId.readyState == 0){

?????????????????        }else if(WebSocketId.readyState == 1){ ??// websocket重连成功
?????????????????????          this.linkNoticeWebsocket();
?????????????????????          clearInterval(hb)
?????????????????????          clearInterval(myVar)
?????????????????        }
???????????????      },4*1000)
?????????    }
???????  }, 15000)
?????},

webSocket使用心跳包实现断线重连

原文地址:https://www.cnblogs.com/qisimx/p/10518355.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved