web-dev-qa-db-ja.com

javascript websocket接続の現在のステータスを取得する方法

サーバーを再起動したり、ネットワーク障害が発生したりすると、WebSocketが閉じられ、常に現在の接続ステータスを取得できるようになりたいことがあります。

私は基本的に次のエラーを受け取っていますが、それを予測できるようにしたいです:

WebSocket is already in CLOSING or CLOSED state. 
    (anonymous function) 
    InjectedScript._evaluateOn 
    InjectedScript._evaluateAndWrap 
    InjectedScript.evaluate
42
Johnride

これは非常に簡単です。 WebSocket API で指定されているように、websocketのthe readyStateプロパティには常にwebsocketの接続が含まれます

次のいずれかの値になります。CONNECTINGOPENCLOSINGまたはCLOSED

エラーを回避する方法は次のようなものです:

if (yourWsObject.readyState === WebSocket.CLOSED) {
   // Do your stuff...
}
71
Johnride