7

プレイヤー間の Android マルチプレイヤー ゲームの通信では、クライアント側でWebSocket サーバーとTooTallNate の Java ライブラリを使用して、Android アプリで WebSocket サポートを有効にしています。明確に指摘しておくと、モバイル ブラウザーでの WebSocket サポートは私にとって重要ではありません。

残念ながら、接続障害や未受信メッセージなどの問題が発生しているとユーザーから報告されています。これは、モバイル デバイス上の WebSocket の一般的な問題 (ブロックされたポート、ファイアウォール、モバイル インターネット接続) ですか、それともおそらくクライアント側のコードの欠陥ですか?

上記のような WebSocket クライアント ライブラリの使用経験はありますか? Android 用の autobahn.ws を発見しましたが、現在のライブラリから切り替える価値があるかどうかはわかりません (上記を参照)。

WAMPはどうですか?サブプロトコル (?) WAMP を使用する必要があるため、WebSocket テクノロジは適切なソリューションではありませんか?

4

2 に答える 2

8

Had these same errors with a bad web socket connection over certain mobile networks. Solved them by:

(1) moving ports: Moving over server and client for websocket over to the SSL port (port 443)

(2) ping keep-alive: Sending periodic "ping" messages from client to server every X seconds, and waiting for a "pong" to return from server. If server doesn't give "pong" back within Y seconds, restart the connection on client.

implementing (1) will get you most of the way there.

于 2013-10-27T21:50:44.810 に答える
5

すべての新しいテクノロジーには、新しい一連の問題が伴います。WebSocket の場合、ほとんどの企業ネットワークで HTTP 接続を仲介するプロキシ サーバーとの互換性があります。WebSocket プロトコルは、HTTP アップグレード システム (通常は HTTP/SSL に使用される) を使用して、HTTP 接続を WebSocket 接続に「アップグレード」します。一部のプロキシ サーバーはこれを好まず、接続を切断します。したがって、特定のクライアントが WebSocket プロトコルを使用していても、接続を確立できない場合があります。

于 2013-01-12T23:01:13.820 に答える