websocket代码提交

This commit is contained in:
2025-03-14 11:35:55 +08:00
parent 0947097932
commit c46abeecf5

View File

@@ -20,6 +20,7 @@ export default class SocketService {
// 重新连接尝试的次数 // 重新连接尝试的次数
connectRetryCount = 0; connectRetryCount = 0;
work:any; work:any;
workerBlobUrl:any;
lastActivityTime= 0; // 上次活动时间戳 lastActivityTime= 0; // 上次活动时间戳
lastResponseHeartTime = Date.now();//最后一次收到心跳回复时间 lastResponseHeartTime = Date.now();//最后一次收到心跳回复时间
@@ -107,9 +108,9 @@ export default class SocketService {
startHeartbeat() { startHeartbeat() {
this.lastResponseHeartTime = Date.now(); this.lastResponseHeartTime = Date.now();
const _this = this const _this = this
const url = window.URL.createObjectURL(new Blob(['(function(e){setInterval(function(){this.postMessage(null)},9000)})()'])); _this.workerBlobUrl = window.URL.createObjectURL(new Blob(['(function(e){setInterval(function(){this.postMessage(null)},9000)})()']));
this.workerBlobUrl = url; // 存储临时的Blob URL
this.work = new Worker(url); this.work = new Worker(_this.workerBlobUrl);
this.work.onmessage = function(e){ this.work.onmessage = function(e){
//判断多久没收到心跳响应 //判断多久没收到心跳响应
@@ -135,13 +136,14 @@ export default class SocketService {
} }
clearHeartbeat() { clearHeartbeat() {
if (this.work) { const _this = this
this.work.terminate(); if (_this.work) {
this.work = null; _this.work.terminate();
_this.work = null;
} }
if (this.workerBlobUrl) { if (_this.workerBlobUrl) {
window.URL.revokeObjectURL(this.workerBlobUrl); // 释放临时的Blob URL window.URL.revokeObjectURL(_this.workerBlobUrl); // 释放临时的Blob URL
this.workerBlobUrl = null; _this.workerBlobUrl = null;
} }
} }