vue websocket封装了,组件渲染完成发送数据,发送的数据比websocket连接还要快。怎么解决?

问题描述

vue websocket封装了,组件渲染完成发送数据,发送的数据比websocket连接还要快。怎么解决?

问题出现的环境背景及自己尝试过哪些方法

   websocket封装了,websocket.js.当页面加载完的时候发送数据 接收数据是正常的
   在父组件created中发送心跳,
   现在需要在子组件的数据加载完成后发送一个更新数据的请求
   
   刷新后,发送的数据比websocket连接成功还要快
  

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

父组件

 created(){
        setInterval(() => {
            this.socketApi.registeSendSock(2)
        }, 8000)
    }

子组件

mounted(){
      this.$nextTick(() => { 
        var type = 5
        var sendData = new Object
        sendData.controlType = 11
        console.log(sendData)
        this.socketApi.controlsendSock(type,sendData)
       })
  },

你期待的结果是什么?实际看到的错误信息又是什么?

图片描述

怎么在连接完成后才发送数据

阅读 4.7k
3 个回答

父组件给子组件传个状态值或者时间戳:当websocket连接之后把状态或者时间戳发送过去,子组件监听这个值,一旦修改 再把更新的请求发过去

我表示没有看懂,一般基于 ws 的通信,都是基于回调的,只有在链接成功的回调参数中,才发送信息,如果不在回调中写的话,那可能就会出现你问题中描述的现象。

如果整个项目是基于websocket通讯,那可以在连接成功后拿到connect回调再实例化项目
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题