From 700884d01a04673da31f22f93a38699753afc951 Mon Sep 17 00:00:00 2001 From: chendaofei <857448963@qq.com> Date: Wed, 19 Feb 2025 11:28:52 +0800 Subject: [PATCH] =?UTF-8?q?websocket=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/utils/webSocketClient.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/frontend/src/utils/webSocketClient.ts b/frontend/src/utils/webSocketClient.ts index a277408..7b4a561 100644 --- a/frontend/src/utils/webSocketClient.ts +++ b/frontend/src/utils/webSocketClient.ts @@ -20,7 +20,6 @@ export default class SocketService { // 重新连接尝试的次数 connectRetryCount = 0; work:any; - heartbeatTimer; lastActivityTime= 0; // 上次活动时间戳 lastResponseHeartTime = Date.now();//最后一次收到心跳回复时间 @@ -105,9 +104,11 @@ export default class SocketService { startHeartbeat() { + this.lastResponseHeartTime = Date.now(); const _this = this const url = window.URL.createObjectURL(new Blob(['(function(e){setInterval(function(){this.postMessage(null)},9000)})()'])); - this.work = new Worker(url) + this.workerBlobUrl = url; // 存储临时的Blob URL + this.work = new Worker(url); this.work.onmessage = function(e){ //判断多久没收到心跳响应 @@ -133,10 +134,13 @@ export default class SocketService { } clearHeartbeat() { - this.work.terminate(); - if (this.heartbeatTimer) { - clearInterval(this.heartbeatTimer); - this.heartbeatTimer = null; + if (this.work) { + this.work.terminate(); + this.work = null; + } + if (this.workerBlobUrl) { + window.URL.revokeObjectURL(this.workerBlobUrl); // 释放临时的Blob URL + this.workerBlobUrl = null; } }