fix:修改websocket根据id取消事件监听

This commit is contained in:
2024-12-13 10:47:12 +08:00
parent 0c8f9804d7
commit 4cdef3c778
4 changed files with 88 additions and 66 deletions
+19 -1
View File
@@ -10,6 +10,7 @@ class WebSocketService {
// this.maxReconnectAttempts = 2;
this.reconnectInterval = 3000;
this.eventListeners = {};
this.listeners = {};
}
connect(url) {
@@ -62,9 +63,25 @@ class WebSocketService {
}
}
on(event, callback) {
on(event, callback,id) {
this.eventListeners[event] = [];
this.eventListeners[event].push(callback);
if (!this.listeners[event]) {
this.listeners[event] = {};
}
this.listeners[event][id] = callback;
}
removeEventListener(event, id) {
if (this.listeners[event] && this.listeners[event][id]) {
delete this.listeners[event][id];
}
}
closeMessageListener() {
if (this.ws) {
this.ws.onmessage = null;
}
}
emit(event, data) {
@@ -76,6 +93,7 @@ class WebSocketService {
close() {
if (this.ws) {
this.ws.close();
this.ws = null;
}
}
}