javax.websocket APIを使用しorg.glassfish.tyrus
て、実装としてJavaでWebsocketクライアントを作成しています。
通常はすべて正常に動作しますが、非常に大きな文字列を受信すると、原因として謎の 'Illegal UTF-8 Sequence' が原因で接続が終了することがあります。
log.info("Ws closed cuz: "
+ reason.getCloseCode() + " , "
+ reason.getReasonPhrase() + " , "
+ reason.toString());
出力:
INFO: Ws closed cuz: NOT_CONSISTENT , Illegal UTF-8 Sequence ,
CloseReason[1007,Illegal UTF-8 Sequence]
文字列が大きすぎるか、文字列に UTF-8 と互換性のない文字が含まれていると思います。
この問題の原因となっている実際の文字列/パケット/フレームに関する情報を取得する方法はありますか? または、エンコーディングの問題を無視し、生の文字列を渡して処理させるように tyrus に指示する方法がある場合は?
そうでない場合、ソケットを介して文字列を送信するという基本的な作業を行い、検証を行わず、応答を処理させる別の Java Websockets クライアントはありますか?
フィードバックをお待ちしております。