HTTPs 연결은 작동하지만 동일한 서버/포트에서 WebSocket이 실패합니다.

HTTPs 연결은 작동하지만 동일한 서버/포트에서 WebSocket이 실패합니다.

저는 Android용 모바일 앱 게임 개발자입니다. 앱이 동일한 서버에 대한 연결 HTTPs과 연결을 모두 사용하고 있습니다. WebSocket이 앱은 라이브 상태이며 대부분의 사용자에게 잘 작동합니다.

앱이 작동하지 않는다고 말하는 사용자가 한 명 있습니다. 로그를 얻을 수 있었고 사용자가 문제 없이 HTTP 연결을 통해 모바일 셀룰러 네트워크를 통해 서버에 연결했지만 동일한 서버/포트에 대한 소켓 연결이 실패하는 것을 확인할 수 있었습니다. 소켓 연결 오류:

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가 사용되는 것을 볼 수 있습니다.

사용자가 네트워크에 있는 문제(예: 닫힌 포트 등)로 인해 연결할 수 없다는 것을 이해합니다.

내 질문:소켓 연결이 작동하지 않는데 동일한 서버 및 포트(443)에서 HTTP 연결이 제대로 작동하는 것이 어떻게 가능합니까?

대부분의 사용자에게 작동하기 때문에 서버의 소켓 구현이 정확하다는 것을 알고 있습니다. 게다가 내가 볼 수 있듯이 서버는 연결을 거부하지 않지만 사용자가 응답을 다시 받을 수 없는 것처럼 연결 시간이 초과되었습니다.

소켓 연결을 만들기 위해 Java 라이브러리를 사용하고 있습니다 com.neovisionaries.ws.client.

관련 정보