import { Message } from 'element-ui'
import store from '@/store'
let websock = null
const wsUrl = 'ws://' + window.location.hostname + ':58888/webSocketMsg'
let running = false
let statusMsg = '未连接'
let lockReconnect = false
let reconnectTimeout
const messageHandlers = []
var heartCheck = {
timeout: 60000,
timeoutId: null,
servertimeoutId: null,
// 调用下面的start方法是为了开始计时,timeout时间到了就发送心跳。
// 每隔timeout这个start方法就要被调用一次,要是不调用它,它就就关闭websock , huang
start: function() {
// console.log('websocket启动start')
statusMsg = 'heart check start'
store.commit('global/SET_SOCKT_MSG_STATUS', 'socket心跳检查开启正常')
var self = this
// 清空之前发起的两个计时器
this.timeoutId && clearTimeout(this.timeoutId)
this.servertimeoutId && clearTimeout(this.servertimeoutId)
// setTimeout()的返回值是计时器id,此值可用于取消计时器
// clearTimeout就是关闭计时器方法,他接受计时器id
// 用这个数值来唯一确定结束哪一个setTimeout()方法
// 他们都属于全局对象window
this.timeoutId = setTimeout(function() {
// 心跳发送计时器,开始计时当计时时间超过this.timeout就发'ping'给后台
websock.send('ping')
console.log('ping')
// 关闭websock计时器,如果时间超过this.timeout关闭
websocket后台重启后自动重连,即全部前台代码
最新推荐文章于 2024-06-14 09:01:39 发布
本文介绍如何在WebSocket后台服务重启后,利用JavaScript实现在前端的自动重连功能,确保通信的连续性。内容包括具体的前台引用示例和重连逻辑的实现细节。
摘要由CSDN通过智能技术生成