vue3+websockt实现更新列表

  1. 创建websocket.js文件

import { ElMessage } from 'element-plus'
let socket
let data
function initWebSocket(e,webSocketOnMessage) {
    if (typeof WebSocket === "undefined")
    return console.log("您的浏览器不支持websocket");
    console.log(e)
    data = e
    let protocol = "ws";
    let wsUri = "";
    if (window.location.protocol == "https:") {
        protocol = "wss";
    }
    wsUri = `${protocol}://XXXXXX/ws/device`;
    socket = new WebSocket(wsUri)//这里面的this都指向vue
    socket.onerror = webSocketOnError;
    socket.onmessage = webSocketOnMessage;
    socket.onopen = webSocketSend;
    socket.onclose = closeWebsocket;
}
function webSocketOnError(e) {
    ElMessage.error("WebSocket连接发生错误" + e)
}

// 关闭websiocket
function closeWebsocket() {
    console.log('连接已关闭...')
}
function close() {
    socket.close() // 关闭 websocket
    socket.onclose = function (e) {
        console.log(e)//监听关闭事件
        console.log('关闭')
    }
}
function webSocketSend() {
    console.log(data)
    socket.send(JSON.stringify(data));
}
export default {
    initWebSocket, close
}
  1. 在main.js全局引用

import websocket from '@/utils/websocket.js'
app.config.globalProperties.websocket = websocket
  1. 在所需要使用的vue页面进行使用

websocket.initWebSocket({health:ids},webSocketOnMessage)

function webSocketOnMessage(e) {
    let data = JSON.parse(e.data);
    // console.log(data)
    deviceList.value = deviceList.value.map(item=>{
      const tmp = data.filter(d=>d.id==item.id)
      if(tmp.length){
        return {
          ...item,
          status:tmp[0].status
        }
      }
      return item;
    })
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3是一个流行的JavaScript框架,用于构建Web应用程序。要在Vue 3应用程序中使用Socket.IO,您需要遵循以下步骤: 1. 安装Socket.IO客户端库:使用npm安装socket.io-client库,可以在命令行中运行以下命令: ``` npm install socket.io-client ``` 2. 在Vue 3应用程序中引入Socket.IO客户端库:打开Vue 3应用程序的入口文件(例如main.js),并将Socket.IO客户端库导入到您的代码中,如下所示: ```javascript import io from 'socket.io-client'; ``` 3. 创建Socket.IO客户端实例:使用先前导入的Socket.IO客户端库创建Socket.IO客户端实例,如下所示: ```javascript const socket = io('http://localhost:3000'); ``` 上面的代码将创建一个Socket.IO客户端实例,并连接到指定的服务器地址(http://localhost:3000)。 4. 监听Socket.IO事件:使用Socket.IO客户端实例监听从服务器发送的事件,如下所示: ```javascript socket.on('event-name', (data) => { // 处理事件数据 }); ``` 在上面的代码中,'event-name'是要监听的事件名称,data是事件数据。 5. 发送Socket.IO事件:使用Socket.IO客户端实例发送事件到服务器,如下所示: ```javascript socket.emit('event-name', data); ``` 在上面的代码中,'event-name'是要发送的事件名称,data是事件数据。 这些是使用Socket.IO在Vue 3应用程序中进行Socket编程的基本步骤。您可以根据需要自定义代码来处理Socket.IO事件和数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值