From 874c6312298e3af772298cbd2cb92aede66b266d Mon Sep 17 00:00:00 2001 From: java110 <928255095@qq.com> Date: Tue, 12 Oct 2021 12:02:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/components/frame/nav/nav.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/public/components/frame/nav/nav.js b/public/components/frame/nav/nav.js index 548b6f532..544b3a014 100755 --- a/public/components/frame/nav/nav.js +++ b/public/components/frame/nav/nav.js @@ -213,17 +213,24 @@ let heartCheck = { timeout: 30000, // 9分钟发一次心跳,比server端设置的连接时间稍微小一点,在接近断开的情况下以通信的方式去重置连接时间。 serverTimeoutObj: null, + pingTime: new Date().getTime(), reset: function () { - clearTimeout(this.timeoutObj); clearTimeout(this.serverTimeoutObj); return this; }, start: function () { - var self = this; + let self = this; this.serverTimeoutObj = setInterval(function () { if (websocket.readyState == 1) { console.log("连接状态,发送消息保持连接"); - websocket.send("{'cmd':'ping','clientId':'"+clientId+"'}"); + let _pingTime = new Date().getTime(); + //保护,以防 异常 + if (_pingTime - self.pingTime < 15 * 1000) { + return; + } + websocket.send("{'cmd':'ping','clientId':'" + clientId + "'}"); + self.pingTime = _pingTime; + heartCheck.reset().start(); // 如果获取到消息,说明连接是正常的,重置心跳检测 } else { console.log("断开状态,尝试重连"); @@ -277,7 +284,7 @@ //接收到消息的回调方法 websocket.onmessage = function (event) { - heartCheck.reset().start(); + heartCheck.reset().start(); console.log("event", event); let _data = event.data; try { @@ -285,7 +292,7 @@ } catch (err) { return; } - + if (_data.code == 200) { toastr.info(_data.msg); } else {