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 open函数里面执行send方法
- 判断websocket链接状态,再进行发送
if (ws.readyState===1) {
ws.send()
}