目录

Vue使用WebSocket实现实时获取后端推送的数据

目录

Vue使用WebSocket实现实时获取后端推送的数据

Vue可以使用WebSocket实现实时获取后端推送的数据。

1.在Vue项目中安装WebSocket库

可以使用npm或 WebSocket库:

npm install --save websocket

2.创建WebSocket连接

在Vue组件中创建WebSocket连接,连接到后端WebSocket服务器,代码如下:

data(){
   return {
      wsUrl: "ws://192.168.1.18:8088/websocket",
      ws: null,
      testSetinterval: null,
  }
},
mounted() {
    this.websocket()
},
methods: {
    websocket() {
      this.ws = new WebSocket(this.wsUrl)
      if (typeof (WebSocket) === "undefined") {
        alert("您的浏览器不支持socket")
      } else {
        this.ws.onopen = () => {
          // Web Socket 已连接上,使用 send() 方法发送数据
          // 设置定时器
          this.testSetinterval = setInterval(() => {
            setTimeout(() => {
              this.ws.send('Holle')
            }, 0)
          }, 1000 * 2)

          // 通过$once来监听生命周期beforeDestroy钩子,在组件销毁前清除定时器。
          // 实现页面切换或者刷新时清除websocket连接
          this.$once('hook:beforeDestroy', () => {
            //清除定时器
            clearInterval(this.testSetinterval)
            //关闭websocket连接
            this.ws.close()
            console.log("定时器清除了")
          })
        }
        this.ws.onmessage = evt => {
            console.log("连接成功")
        }
        this.ws.onclose = e => {
          // 关闭 websocket
          console.log('websocket 断开')
          console.log(e.code + ' ' + e.reason + ' ' + e.wasClean);
        }
      }
    },

}

上面的代码中,使用 WebSocket 连接到后端 WebSocket 服务器,通过监听 onmessage 事件,实时获取从后端推送来的数据。