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; } }