1、创建 websocket.js
import { socketUrl } from './key'
let sotk = null;
let host = socketUrl.replace('http', 'ws')
let socketOpen = false;
const ws_connect = (id) => {
sotk = wx.connectSocket({
url: `${host}/websocket/${id}`,
header: {
'content-type': 'application/json'
}
})
console.log(sotk)
sotk.onOpen(res => {
socketOpen = true;
console.log('监听 WebSocket 连接打开事件。', res);
})
sotk.onClose(onClose => {
socketOpen = false;
console.log('监听 WebSocket 连接关闭事件。', onClose)
})
sotk.onError(onError => {
socketOpen = true;
console.log('监听 WebSocket 错误。错误信息', onError)
})
}
//发送信息
const sendMsg = (msg, success) => {
if (socketOpen) {
sotk.send({
data: JSON.stringify(msg)
}, function (res) {
success(res)
})
}
}
//接收信息
const onMessage = (reMsg) => {
if (socketOpen) {
sotk.onMessage(onMessage => {
reMsg(JSON.parse(onMessage.data));
})
}
}
//关闭
const closeWebsocket = () => {
if (socketOpen) {
sotk.onClose(onClose => {
socketOpen = false;
console.log('监听 WebSocket 连接关闭事件。', onClose)
})
}
}
module.exports = {
ws_connect,
sendMsg,
onMessage,
closeWebsocket
}
2、在页面引用
import { ws_connect } from '../../utils/websocket'
...
//连接websocket
ws_connect(rs.data.id)