HTTPs 連線有效,但 WebSocket 在同一伺服器/連接埠上失敗

HTTPs 連線有效,但 WebSocket 在同一伺服器/連接埠上失敗

我是 Android 行動應用程式遊戲的開發人員。該應用程式同時使用HTTPsWebSocket連接到同一台伺服器。該應用程式已上線,並且適合大多數用戶。

我有一位用戶說該應用程式不適合他。我能夠獲取日誌並看到用戶透過行動蜂窩網路透過 HTTPs 連接到伺服器,沒有任何問題,但到同一伺服器/連接埠的套接字連接失敗。連接到套接字時發生錯誤:

Failed to connect to 'api.mafia-game.net:443': failed to connect to api.mafia-game.net/161.97.93.23 (port 443) from /:: (port 41656): connect failed: ETIMEDOUT (Connection timed out)

Failed to connect to 'api.mafia-game.net:443': failed to connect to api.mafia-game.net/161.97.93.23 (port 443) from /:: (port 41658): connect failed: ETIMEDOUT (Connection timed out)

Failed to connect to 'api.mafia-game.net:443': failed to connect to api.mafia-game.net/161.97.93.23 (port 443) from /:: (port 41660): connect failed: ETIMEDOUT (Connection timed out)

從這個日誌中我看到套接字每次都會超時,並且應用程式每次都嘗試使用不同的本地端口。我還看到 IP 解析正確並且使用了 IPv4。

據我所知,用戶由於網路中的某些原因(例如關閉連接埠等)而無法連接。

我的問題:套接字連線無法運作,但 HTTPs 連線在同一伺服器和連接埠(443)上運作正常,這怎麼可能?

我知道伺服器上的套接字實作是正確的,因為它適用於大多數用戶。另外,正如我所看到的,伺服器並沒有拒絕連接,但連接只是超時,就像用戶無法收到回復一樣。

為了建立套接字連接,我使用 Java 庫com.neovisionaries.ws.client

相關內容