严智鑫
2024-05-29 62c74409a587d9921df1a2248ce23b3b0375fbd1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// WebSocketService.js
 
let socket = null;
 
export const initializeWebSocket = (socketUrl, messageHandler) => {
    if (typeof WebSocket === "undefined") {
      console.log("Your browser does not support WebSocket");
      return null;
    }
  
    const socket = new WebSocket(socketUrl);
  
    socket.onopen = function () {
      console.log("WebSocket is now open");
    };
  
    socket.onmessage = (msg) => {
      if (!msg.data) {
        return;
      }
  
      const obj = JSON.parse(msg.data);
  
      // 调用消息处理函数,将数据传递给 Vue 组件
      if (messageHandler) {
        messageHandler(obj);
      }
    };
  
    return socket;
  };
  
 
  export const closeWebSocket = (socket) => {
    if (socket && socket.readyState === WebSocket.OPEN) {
        socket.close();
        console.log("WebSocket connection closed");
    }
};