javascript在onopen事件上收到websocket错误

时间:2017-05-22 21:47:57

标签: javascript angular websocket

我收到的错误是:

无法执行'发送' on' WebSocket':仍处于连接状态。 是否有一个事件我可以检查以确保套接字完全连接后才能发送消息。

我的代码如下:

        this.contextWS = new WebSocket(socketAddress);

        this.contextWS.onopen = () => {
            console.log('Websocket is open !!!');
            this.contextWS.send('payload');
        }

我在这里犯了一个明显的错误吗?

1 个答案:

答案 0 :(得分:1)

MDN - WebSocket说明之后:

  

WebSocket连接时要调用的事件侦听器   readyState更改为OPEN;这表明连接是   准备发送和接收数据。这个活动很简单   名字“打开”。

我会使用 onerror 事件处理程序检查路上是否有错误..

contextWS.onerror = function (event) {
   console.log(event.data);
};

...和 onclose 事件处理程序,以检查意外关闭连接的原因:

contextWS.onclose = function(event) {
      if (event.code == 1000) {
        console.log('WebSocket closed normally');
      } else {
          console.log('WebSocket closed unexpectedly: ' + event.code);
      }

以下是所有可能结果代码的列表 - MDN CloseEvent

您可以尝试对消息进行排队,并在 readyState == 1 时发送消息。请参阅类似问题的答案 - proxy function