websocket心跳机制(保活机制)

原理:使⽤setInterval和setTimeout实现,每隔⼀段时间就向服务器发送⼀个数据包,告诉服务器⾃⼰还活着,如果服务器也
活着就回传⼀个数据包,如果断开,需要客户端重连
1.Websocket连接成功时创建⼼跳检测

socket.open() {
heart()
}

2.Websocket接收消息后进⾏⼼跳重置

heart()

3.使⽤setInterVal和setTimeout⽅法实现⼼跳
data() {
return {
timeoutObj: null,
serverTimeoutObj: null
}
}

heart() {
// 1.通过关闭定时器和倒计时进⾏重置⼼跳
clearInterVal(timeoutObj)
clearTimeout(serverTimeoutObj)
 // 2.每隔30秒向服务端发送⼀个数据包
this.timeoutObj = setInterVal(() => {
console.log(‘重置检测⼼跳’)
const data = {}
socket.send(data) // 发送数据包
// 2秒之后 服务端没有返回数据包就关闭连接重连
serverTimeoutObj = setTimeout(() => {
console.log(‘⼼跳没有了,连接断掉了’)
socket.close()
}, 2000)
}, 3000)
}

猜你喜欢

转载自blog.csdn.net/weixin_38318244/article/details/125994254