2016-10-22 2 views
3

私は弾力のあるbeanstalk上で実行されている.NETコアアプリケーションを取得して、ブラウザのjavascriptからWebソケット接続を受け取ろうとしています。弾性ビーンストークストリッピングSec-WebSocket-Acceptヘッダ

私のローカルマシン上のAWSの外でクライアントとサーバーをテストするとき、私は2つのWebSocket接続を確立できます。私は

WebSocket connection to 'ws://52.62.253.144/' failed: Error during WebSocket handshake: 'Sec-WebSocket-Accept' header is missing 

次のエラーを取得するElastic Beanstalkでのサーバーを展開する場合でも、サーバーはプロトコル切り替え101で応答したので、私は、サーバーが接続を確立しようとしている知っているが、ヘッダを秒-のWebSocket-受け入れ不足している。ローカルでテストするときは、このヘッダーが存在します。

エラスティックビーンストークがレスポンスからSec-WebSocket-Acceptを取り除いている可能性はありますか?現在、自動拡張ではなく、「単一インスタンス」シナリオで構成されています。

答えて

2

同じことにTomcat/Javaプロジェクトで私に起こった、事前に

おかげで、それが最終的にはTCP/SSLにELBプロトコルを切り替えることで修正されました。 The official documentationは、それらを切り替える方法を示しています。これを試してみてください。

+0

+1。 ElasticBeanstalkでデプロイされたWebソケットを使用するアプリケーションもあり、ListenerProtocolをTCP/SSLに切り替えて動作させます。 – endertunc

+0

私はアプリケーションロードバランサを今にしようとしています。これはAWSが私にウェブソケット用に提案しているものですが、私はまだ同じエラーを受けています。セッションの粘着性を有効にしようとしました。ロードバランサをバイパスしてIPを直接攻撃すると、同じエラーが発生します。 EBはシングルインスタンスモードです。 ( – ChrisBellew

+0

)IIS 8にWebsocketをインストールするには、Server Manager>管理>役割と機能の追加> Webサーバー>アプリケーション開発> Webソケットの順に選択する必要がありました。 – ChrisBellew