websocket后台重启后自动重连,即全部前台代码

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,javascript,前端)