"stack": "Error: Failed to execute 'send' on 'WebSocket':"

使用WebSocket的时候报这个错误是什么原因?我在分页中使用,每次翻页的时候会关闭连接,然后再次开启连接并发送消息,但是每次翻页的时候就会报这个错误,请问应该怎么解决?谢谢了

{ "stack": "Error: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.\n at http://db.vivo.xyz/dbaplat-info/static/js/3.41ae162b1bf12cefca39.js:1:7816" }
阅读 4.3k
3 个回答

websocket几个状态值:

CONNECTING:值为0,表示正在连接;
OPEN:值为1,表示连接成功,可以通信了;
CLOSING:值为2,表示连接正在关闭;
CLOSED:值为3,表示连接已经关闭,或者打开连接失败

只有在值为1的时候才可以进行正常的send发送,因此在 send 之前添加一个状态判断,就可以解决问题

if (socket.readyState===1) {
    socket.send(JSON.stringify(message));
}

需要在websocket的onopen事件之后,才能调用send。
这个错误信息已经告诉你了,“还在连接中”

是在本页面无跳转翻页吗

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