VUE 在mounted()中getWebsocket必须刷新才执行,不刷新不执行问题

进入页面进行getWebsocket,然后获取状态,但是现在页面进入后必须F5
刷新一次,就算切换页面也没作用,打了debugger,刷新之后就执行,不
刷新就跳过。求个路大佬精英给支个办法吧,找出问题也好,跪谢!

这是页面的mounted()

  mounted() {
    var self = this;
    this.tableHeight = document.documentElement.clientHeight - 146 - 60;
    this.treeHeight = document.documentElement.clientHeight - 146 - 120;
    this.selectDevicePage();
        //进入页面后走到这里就直接跳过不执行了,F5刷新后他就会执行
    this.socket = getWebsocket({
      onlineInfo: function(data) {
      debugger;
        console.log("Site.onlineInfo")
        console.log(data)
        for (var i = 0; i < self.dataTable.list.length; i++) {
          console.log(self.dataTable.list[i].deviceInfo.id);
          console.log(self.dataTable.list[i].deviceInfo.id == data._devid);
          if (self.dataTable.list[i].deviceInfo.id == data._devid) {
            self.dataTable.list[i].status = data._value;
            break;
          }
        }
          console.log(self.dataTable.list);
      }
    }).reStart();
  },

这是getWebsocket

export default function getWebSocket(obj) {
    if (zenithSocket.socket) {
        if (obj && obj.gpsInfo) {
            zenithSocket.gpsInfo = obj.gpsInfo;
        }
        if (obj && obj.onlineInfo) {
            zenithSocket.onlineInfo = obj.onlineInfo;
        }
        if (obj && obj.sosInfo) {
            zenithSocket.sosInfo = obj.sosInfo;
        }
        return zenithSocket;
    } else {
        zenithSocket.gpsInfo = obj.gpsInfo? obj.gpsInfo : function(data){};
        zenithSocket.onlineInfo = obj.onlineInfo ? obj.onlineInfo : function(data){};
        zenithSocket.sosInfo = obj.sosInfo ? obj.sosInfo : function(data){};
        if (obj.url) {
            zenithSocket.url = obj.url;
            return createWebSocket(obj.url);
        } else {
            return null;
        }

    }
}

页面缓存可能会导致mounted回调不执行,放到显示回调里面