// src/services/websocket.js let ws = null; let reconnectTimer = null; export const connectWebSocket = (port = 8000) => { // 关闭已有连接 if (ws) ws.close(); // 创建新连接 ws = new WebSocket(`ws://localhost:${port}`); // 连接事件处理 ws.onopen = () => { console.log('WS connected'); clearInterval(reconnectTimer); }; ws.onerror = (error) => { console.error('WS error:', error); handleReconnect(); }; ws.onclose = (event) => { console.log('WS closed:', event.reason); handleReconnect(); }; ws.onmessage = (event) => { console.log(12312312, event.data) if (event.data instanceof Blob) { // createImageBitmap(event.data).then(img => { // ctx.drawImage(img, 0, 0); // }); } }; return ws; }; // 自动重连机制 const handleReconnect = () => { clearInterval(reconnectTimer); // reconnectTimer = setInterval(() => { // connectWebSocket(8000); // }, 3000); }; // 发送控制指令 export const sendControl = (data) => { if (ws?.readyState === WebSocket.OPEN) { ws.send(JSON.stringify(data)); } };