我的應用程序是一個使用Spring WebSocket和STOMP的Spring啓動應用程序。所有的配置在我的本地工作正常。但在雲中獲得以下錯誤。WebSocket握手失敗
服務器錯誤: -
錯誤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>
我部署在AWS雲與ELB。我的實例在ELB中啓用HTTPS的情況下運行。我爲我的域使用AWS路由53。
我在航線增加了一個 'A' 記錄與負載平衡器URL 53
HTTPS證書是* .example.com的。
ELB被配置了以下內容,
HTTP - 80 - HTTP - 80
HTTPS - 443 - HTTP - 80
我也使用Google,發現我需要增加空閒超時。用戶可能會保持會話8小時。 那麼,我需要配置8小時嗎? ELB中是否有其他配置?
雖然我們在HTTP上運行我們的EC2實例,但我們有一個過濾器,它可以根據X-Forward_Proto標頭將用戶重定向回HTTPS。
在調試日誌日誌,我看到http://example.com:80/ws/313/7pq61a2c/websocket
莫非是什麼原因呢?
如何配置websocket使用https不是http嘗試?
感謝