const status = ref(0)
const connectSocketInit = () => {
socketTask.value = uni.connectSocket({
url: BASE_URL + '/ws/socket',
success: () => {
console.log('WebSocket连接创建成功');
}
});
socketTask.value.onOpen(() => {
console.log('WebSocket连接已打开');
send()
});
socketTask.value.onError(() => {
console.log('WebSocket连接打开失败,请检查!', res)
reconnect()
})
socketTask.value.onClose(() => {
console.log('WebSocket连接已关闭');
});
socketTask.value.onMessage((res) => {
if (status.value == 0) {
stopTask(2)
}
uni.hideLoading()
// if (((status.value == 0 && res.data.includes("连接")) || (status.value == 1 && !res.data.includes("连接"))) && !(dataList.value.some(e => e == res.data))) {
dataList.value.push(res.data)
console.log("存储", dataList.value)
// }
})
}
const send = () => {
let obj = {
id: 1,
}
console.log("发送参数", obj)
socketTask.value.send({
data: JSON.stringify(obj)
})
}
//重新连接
const reconnect = () => {
console.log("重连")
//停止发送心跳
clearInterval(reconnectTimeOut.value)
//如果不是人为关闭的话,进行重连
reconnectTimeOut.value = setInterval(() => {
connectSocketInit();
}, 5000)
}
const stopTask = (status) => {
if (status == 1) {
uni.hideLoading()
uni.redirectTo({
url: ''
})
// uni.closeSocket()
}
if (status != 2) {
socketTask.value.close();
clearInterval(reconnectTimeOut.value)
}
}
onLoad(() => {
connectSocketInit()
})
onUnload(() => {
console.log("销毁")
// uni.closeSocket()
stopTask(0)
})
05-05
4026
4026
12-17

被折叠的 条评论
为什么被折叠?



