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) }
上一篇:
Java架构师技术进阶路线图