// utils/websocket.js let socket = null; let messageCallback = null; /** * 连接 WebSocket * @param {String} url WebSocket 地址 * @param {Function} onMessage 消息回调 */ function connectWebSocket(token, onMessage) { messageCallback = onMessage; socket = uni.connectSocket({ url: `ws://120.79.241.5:8000/socket?authorization=${token}`, success: () => { console.log("连接建立成功"); }, fail: (err) => { console.error("连接失败", err); }, }); // 接收消息 uni.onSocketMessage((res) => { if (messageCallback) { messageCallback(res.data); } }); // 错误处理 uni.onSocketError((err) => { console.error("WebSocket 错误", err); }); // 关闭处理 uni.onSocketClose(() => { console.log("WebSocket 已关闭"); socket = null; }); } /** * 发送消息 * @param {String} msg 要发送的消息内容 */ function sendWebSocketMessage(msg) { if (socket && uni.sendSocketMessage) { uni.sendSocketMessage({ data: msg, fail: (err) => { console.error("发送消息失败", err); }, }); } else { console.warn("WebSocket 未连接"); } } /** * 关闭连接 */ function closeWebSocket() { if (socket) { uni.closeSocket(); socket = null; } } export default { connectWebSocket, sendWebSocketMessage, closeWebSocket, };