3

WSS 経由で websokcet サーバーに接続するために、ネイティブ Android アプリ (Java) で Tyrus websocket クライアント (バージョン 1.12) を使用しています。バイナリ メッセージを送受信できます。しかし、サイズが 16 KB を超えるバイナリ メッセージをサーバーから受信しようとすると、Tyrus Websocket クライアントが「異常終了」という理由で終了します。

同じサーバーと同じ大きなメッセージは、Chrome (Android) と Safari (iOS) の HTML5/JavaScript Websocket クライアントで正常に動作します。

Tyrus Websocket クライアントのソース コードをデバッグしようとしていますが、それは長い道のりです。

誰かが同様の問題を抱えていて、手がかりを提供できるかどうか疑問に思っています。

よろしくお願いします、アディティア。

4

2 に答える 2

1

申し訳ありませんが、古い質問に回答するためのポリシーが何であるかはわかりませんが、回答しないままにしておくのは悪いようです. 同様の問題に遭遇しました(ただし、その時点ではあなたの質問は見当たりませんでした)。このように最大バッファサイズを設定すると、うまくいきました:

ClientManager client = ClientManager.createClient(c); 
client.getProperties().put("org.glassfish.tyrus.incomingBufferSize", 128000000); 
session = client.connectToServer(this, config, new URI("wss://" + SERVER + ":" + PORT + WEBSOCKETENDPOINT));

ここに私の質問があります: Spring Websocket サーバーは、大量のデータを送信するときに接続をリセットします

于 2017-08-08T16:09:13.517 に答える
0

よくわかりませんが、お役に立てるかもしれません。Session.setMaxBinaryMessageSize(int)

于 2015-10-21T09:44:17.363 に答える