私のアプリケーションは、STOMPでSpring WebSocketを使用するSpringブートアプリケーションです。すべての設定は私のローカルでうまく動作しています。しかし、クラウドで次のようなエラーが発生する。WebSocketハンドシェイクが失敗しました
サーバーエラー: -
ERROR oswsssDefaultHandshakeHandler - ハンドシェイクが原因 への不正なアップグレードヘッダーに失敗しました:
- : - ブラウザで:ヌル
クライアントエラーを
WebSocket接続先 'WSS://.example.com/ws/313/7pq61a2c/websocketは、' 失敗しました:のWebSocketハンドシェイク中 エラー:予期しない応答コード:400
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-messaging</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
</dependency>
私はELBとAWSクラウドで展開しました。私のインスタンスは、ELBで有効になっているHTTPを使用してHTTP上で実行されています。私は自分のドメインにAWSルート53を使用しています。私は53
HTTPS証明書のルートでロードバランサURLを「」レコードを追加した
は、.example.comと*のためです。 HTTP - - 80 - - HTTP - 80
HTTPS - 443
がELBは、以下の、
HTTPを使用して構成されている80
私はグーグルでやったとことがわかりました私はアイドルタイムアウトを増やす必要があります。ユーザーはセッションを8時間開いたままにすることができます。 これを8時間設定する必要がありますか? ELBで他の設定を行う必要がありますか?
HTTPでEC2インスタンスを実行しても、X-Forward_Protoヘッダーに基づいてユーザーをHTTPSにリダイレクトするフィルタがあります。デバッグログログで
は、私はそれが理由だろhttp://example.com:80/ws/313/7pq61a2c/websocketを参照してください?
httpsではなくhttpsを試すようにwebsocketを設定するにはどうすればよいですか?
おかげ