uniapp小程序websocket长连接
使用promise,链接成功才发送消息
防止在打开链接之前发送消息失败,使用promise,在打开链接后发送消息
let socketOpenPromise = new Promise(resolve => {
uni.onSocketOpen(res => {
resolve()
})
})
// 连接WebSocket
uni.connectSocket({
url: '' // 链接
})
// 连接失败处理
uni.onSocketError(res => {
console.log('WebSocket连接打开失败!',res)
})
// 收到消息处理
uni.onSocketMessage(res => {
console.log('收到消息:', res.data,res)
})
// 发送消息方法
async function sendSocketMessage(msg) {
await socketOpenPromise
let newmsg = JSON.stringify(msg) //转成json格式
uni.sendSocketMessage({
data: newmsg,
})
console.log('发送成功#',newmsg);
}
// 调用发送消息
let msg = {
deviceNo : getApp().globalData.dd,
type : 0
}
sendSocketMessage(msg)
需要在onUnload生命周期函数中关闭,写方法
uni.closeSocket() //关闭链接
uni.onSocketClose(function (res) {
console.log('WebSocket 已关闭!'); //监听关闭
});
更多推荐
所有评论(0)