qisimx

首先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){
let _self = this;

每个15秒发送一次心跳包
WebSocketId.send(JSON.stringify({“心跳包的内容要与后台商量确定”))
let hb = setInterval(function(){
WebSocketId.send(JSON.stringify({code:999,data:_self.userInfo.id}))

检测到websocket连接断开
if(WebSocketId.readyState == 2 || WebSocketId.readyState == 3){
clearInterval(_self.hb)
let i = 1
let myVar = setInterval(function(){
if(WebSocketId.readyState == 2 || WebSocketId.readyState == 3){

重新new一个websocket的连接
_self.noticeSocketLink = new WebSocket(WebSocketId.url);
WebSocketId = _self.noticeSocketLink;
if(i == 5){
clearInterval(myVar);
// location.reload();
return
}
i++
}else if(WebSocketId.readyState == 0){

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

分类:

vue

技术点:

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-08-23
  • 2021-11-25
  • 2022-12-23
  • 2022-02-03
  • 2021-05-21
  • 2021-10-19
猜你喜欢
  • 2022-12-23
  • 2021-12-26
  • 2022-12-23
  • 2021-11-22
  • 2022-12-23
  • 2022-12-23
  • 2022-01-07
相关资源
相似解决方案