let socket = null; const HEARTBEAT_INTERVAL = 5000; let heartbeatTimer = null; // // 连接到后端 WebSocket,并开始心跳 // function connect() { // WebSocket.connect('ws://your-backend-url'); // startHeartbeat(); // } // 开始发送心跳消息 function startHeartbeat() { heartbeatTimer = setInterval(() => { WebSocket.send('heartbeat'); }, HEARTBEAT_INTERVAL); } // 停止发送心跳消息 function stopHeartbeat() { clearInterval(heartbeatTimer); } // 监听收到的消息 WebSocket.onMessage((event) => { if (event.data === 'heartbeat') { // 收到心跳响应,重置定时器 resetHeartbeatTimer(); } else { // 处理其他消息 } }); // 重置心跳定时器 function resetHeartbeatTimer() { clearInterval(heartbeatTimer); startHeartbeat(); } // 在页面关闭或组件销毁时,关闭 WebSocket 连接并停止心跳 uni.onUnload(() => { WebSocket.close(); stopHeartbeat(); }); function connect(url) { socket = uni.connectSocket({ url: url }); socket.onOpen(() => { //console.log('WebSocket 连接已打开'); }); socket.onError((error) => { console.error('WebSocket 连接发生错误', error); }); socket.onClose((e) => { //console.log('WebSocket 连接已关闭', e); }); socket.onMessage((event) => { //console.log('收到服务器消息', event.data); // 处理收到的消息 }); } function send(message) { socket.send({ data: message }); } function close() { if (socket) { socket.close(); } } export default { connect, send, close };