Pocket

AWS ELB で WebSocketを利用時に「Error during WebSocket handshake: Unexpected response code: 400」が出る際の対処方法

  • add this entry to hatena bookmark

AWS ELB配下のサーバで、WebSocketのデーモンを(例えば、TCP/3000ポートで)動かしている環境にて、ブラウザ側コンソールで「Error during WebSocket handshake: Unexpected response code: 400」エラーが表示された場合の対処例を記載しています。

エラー内容

以下のようなエラーがブラウザ側コンソールで表示された場合です。

WebSocket connection to ‘ws://xxx.xxxx.xxxx:3000/socket.io/?EIO=3&transport=websocket&sid=xxxxx’ failed: Error during WebSocket handshake: Unexpected response code: 400

原因と対策

AWSでは、HTTP/HTTPSでのWebSockets通信はサポートしていないようです。

私の環境の原因は、ELBのリスナー設定の問題でした。リスナー設定で、3000番ポートの「ロードバランサーのプロトコル」を「HTTP」にしていましたが、「TCP」に変更したところ、今回のエラーは消えました。

ELB_Listener_201507

ご参考まで。

 

 

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

チェックサイト RSS Feed読者登録はいかがでしょうか?RSS配信中です。