2016-10-12 8 views
1

サーバへの接続を試みているときにWebSocket接続をキャンセルすることはできますか?接続しようとするとWebSocket接続がキャンセルされる(JavaScript)

のユーザーが、それはスペルミスのホストであることを通知し、ONERRORが

失敗したように調達している前に、接続を確立するための要求をキャンセルしたいとしましょう:接続確立でエラーが発生しました:ERR_CONNECTION_REFUSEDネット::

私は近くに電話しようとしましたが、これはリクエストをキャンセルしません。コンソールでも警告が表示されます。

失敗:WebSocketは接続が確立される前に閉じられています。

答えて

2

は残念ながら、これはclose()を使用して達成できない、と全く可能ではないようです。

はまた、XMLHttpRequestとは異なり、WebSocketのは、これを達成するために何abortメソッドを持っていません。

WebSocket specsには、これを行う方法は何も言及されていません。オブジェクトをnullに設定することは、このトリックを行いません。

次の例では、nullへのWebSocketオブジェクトを設定し、まだ接続エラーメッセージを取得し、これを示します。

var ws = new WebSocket('ws://unknownhost.local'); 
ws.onopen = function() { 
    console.log('ohai'); 
}; 
ws = null; 
console.log(ws); 

// > null 
// > VM2346:35 WebSocket connection to 'ws://unknownhost.local/' failed: Error in connection establishment: net::ERR_NAME_NOT_RESOLVED 
+0

ありがとうございました。私はドキュメントを読みましたが、中止がなく、確認が欲しいと驚いていました。 – Makla

0

close()メソッドは、唯一の確立された接続を終了します。 あなたの場合、あなたはそれを止めたい場所にあなたのwebsocketハンドルを割り当てることができます。

webSocketHanle = null; 

この割り当てによって、コールバックはアクティブ化されません。

しかし、それはサーバからの応答を得るために非常に高速なプロセスであることに注意してください。

関連する問題