fix:小车打点

This commit is contained in:
2024-11-29 17:59:17 +08:00
parent d52c5bb169
commit 8c54ee60e0
2 changed files with 99 additions and 25 deletions
+18 -13
View File
@@ -1,3 +1,5 @@
import modal from "./modal";
// WebSocketService.js
class WebSocketService {
constructor() {
@@ -10,22 +12,27 @@ class WebSocketService {
this.ws = new WebSocket(url);
this.ws.onopen = () => {
console.log('WebSocket connected');
this.emit('open');
console.log("WebSocket connected");
this.emit("open");
};
this.ws.onmessage = (event) => {
this.emit('message', JSON.parse(event.data));
const message = JSON.parse(event.data);
if (message.type === "info") {
modal.msgSuccess(message.data);
return;
}
this.emit("message", message);
};
this.ws.onerror = (error) => {
console.error('WebSocket error:', error);
this.emit('error', error);
console.error("WebSocket error:", error);
this.emit("error", error);
};
this.ws.onclose = () => {
console.log('WebSocket closed');
this.emit('close');
console.log("WebSocket closed");
this.emit("close");
setTimeout(() => this.connect(url), this.reconnectInterval);
};
}
@@ -34,20 +41,18 @@ class WebSocketService {
if (this.ws && this.ws.readyState === WebSocket.OPEN) {
this.ws.send(JSON.stringify(data));
} else {
console.error('WebSocket is not connected');
console.error("WebSocket is not connected");
}
}
on(event, callback) {
if (!this.eventListeners[event]) {
this.eventListeners[event] = [];
}
this.eventListeners[event] = [];
this.eventListeners[event].push(callback);
}
emit(event, data) {
if (this.eventListeners[event]) {
this.eventListeners[event].forEach(callback => callback(data));
this.eventListeners[event].forEach((callback) => callback(data));
}
}
@@ -58,4 +63,4 @@ class WebSocketService {
}
}
export default WebSocketService;
export default WebSocketService;