34. ws.9341e94c.js:1 Uncaught DOMException: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.

 Uncaught DOMException: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.

问题分析

webscoket连接标志有四个值,分别对应不同的状态,如下:

  • WebSocket.CONNECTING:值为0,表示正在连接;
  • WebSocket.OPEN:值为1,表示连接成功,可以通信了;
  • WebSocket.CLOSING:值为2,表示连接正在关闭;
  • WebSocket.CLOSED:值为3,表示连接已经关闭,或者打开连接失败。
    这个错误原因:WebSocket处在正在连接的状态(CONNECTING),其实还没有连接成功,然后调用者又调用了send方法发送,所以still in connecting

    问题解决

    • 在websocket open函数里面执行send方法
      ws.onopen = () => {
      ws.send('i am xiaojin');
      }
      
  • 判断websocket链接状态,再进行发送
if (ws.readyState===1) {
    ws.send()
}

您可能还会喜欢: