欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > vue3使用webSocket

vue3使用webSocket

2024/10/25 11:27:55 来源:https://blog.csdn.net/i_am_a_div/article/details/143057679  浏览:    关键词:vue3使用webSocket

1.安装插件

npm i @vueuse/core@10.11.1

2.引入使用

import { useWebSocket } from "@vueuse/core"const { send, open, close: wsClose, status } = useWebSocket('ws://192.168.100.90:53021/inms-application/alarm', {onMessage: (ws, { data }) => {console.log("websocket链接", data,)// 处理返回数据事件等},onDisconnected: () => {console.log("websocket断开链接")handleReconnect() // 断开后,手动再次链接ws},// 设置自动重连的功能,最多重试 3 次,每次重试之间的延迟为 5 秒。如果重连失败,将显示错误消息。autoReconnect: {retries: 3,delay: 5000,onFailed() {ElMessage.error("websocket链接失败")}},// 配置心跳机制,每 10 秒发送一次 "ping" 消息,如果在 1 秒内没有收到响应,则认为连接失效。heartbeat: {message: "ping",interval: 10000,pongTimeout: 1000}
})// 自定义的监听断开连接后尝试重连并发送数据
const handleReconnect = () => {const reconnectInterval = setInterval(() => {if (status.value === 1) { // 1 表示 WebSocket 连接已成功打开console.log("WebSocket 已重新连接")send(JSON.stringify({ userId: userStore?.userInfo?.id })) // 重连成功后发送初始数据给后端clearInterval(reconnectInterval)  // 重连成功后清除重连尝试} else {console.log("正在尝试重新连接 WebSocket...")open()  // 尝试手动重新打开 WebSocket 连接}}, 5000)  // 每隔5秒尝试重新连接并发送数据
}onMounted(() => {send('初始连接ws')
})

3.在线测试

测试websocket连接

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com