初始化
This commit is contained in:
54
src/services/websocket.js
Normal file
54
src/services/websocket.js
Normal file
@@ -0,0 +1,54 @@
|
||||
// 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));
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user