JS WebSocket客户端ping-Vue

时间:2018-12-08 14:23:55

标签: javascript vue.js websocket

尝试实施某种客户端ping:

socket.onopen = () => {
  let pinger = new Promise((resolve, reject) => {
    setInterval(() => {
      socket.send(JSON.stringify({ "type": "ping" }))
      socket.onmessage = ({ data }) => {
        let jsonMessage = JSON.parse(data)
        if (jsonMessage.type == 'PING') {
          resolve()
        } else if (jsonMessage.type !== 'PING') {
          reject()
        }
      }
    }, 10000)
  })
  pinger.then(() => console.log('resolved')).catch(() => console.log('error'))
}

这里遇到一个问题,怎么知道socket.send()是否成功?这背后的想法是,如果我发送JSON对象,并且没有收到服务器的响应,则我启动方法connect(),如果响应返回,则我将不执行任何操作。

更新了代码,现在错误仅在控制台中显示一次,尽管应该每10秒显示一次。

0 个答案:

没有答案