1、socket.js 文件 import config from '@config' const host = config.wsHOST export default class WebSocket { constructor({ heartBeat, roomId, onMessage }) { // 是否已连接 this.connected = false // 当前网络状态 this.netWorkState = true // 心跳检测频率 this.timeout = 15000 // 计时器ID this.timer = null // 当前重连次数 this.connectNum = 0 // 心跳检测和断线重连开关 this.heartBeat = heartBeat // 房间id this.roomId = roomId // 回调监听 this.message = onMessage // socketTask this.socketTask = null // 初始化 this.initWebSocket() } /** * 建立websocket连接 * @param {*} options */ initWebSocket(options) { const that = this if (this.connected) { console.log("socket已连接") } else { // 检查网络 wx.getNetworkType({ success(net) { if (net.networkType != 'none') { const appId = that.appId() that.socketTask = wx.connectSocket({ url: `${host}${that.roomId}/${appId}`, success(res) { console.log('socket连接成功', res) // 已连接 that.connected = true }, fail(err) { console.log('socket连接失败', err) } }) // 监听 WebSocket 连接打开事件 that.onSocketOpened() // 监听 WebSocket 连接关闭事件 that.onSocketClosed() // 监听websocket 错误 that.onSocketError() // 存在发生数据则需要发送数据 if (options) { that.sendWebSocketMsg(options) } } else { that.netWorkState = false } } }) } }
官方能否给一个SocketTask的具体事例啊?wx.connectSocket是异步的,那么如何获取SocketTask?以及如何用SocketTask监听? 现在文档给的都是分散的,希望官方一共一个完整的例子。 现在弄得一头雾水。
2022-05-12