AsyncHttpClient でデフォルトのバッファ サイズを増やす方法。次のコードを使用して、ストリーミング サーバー (Http ロング プーリング) からメッセージを読み取ります。
サーバーが 8KB を超えるメッセージを送信すると、メッセージがチャンクに分割されます。
元:-
元のメッセージ:-
これは私のテストメッセージです
受信メッセージ:-
これは私の
テスト
メッセージ
バッファサイズを増やす方法はありますか? メッセージ全体を一部で受信するには?
マイコード
AsyncHttpClientConfig.Builder config = new AsyncHttpClientConfig.Builder()
.setConnectionTimeoutInMs(120000)
.setRequestTimeoutInMs(-1)
.setIdleConnectionTimeoutInMs(120000)
.setMaxConnectionLifeTimeInMs(-1);
AsyncHttpClient client = new AsyncHttpClient(config.build());
Future<String> f = client.prepareGet("http://IP:PORT/context/test").execute(
new AsyncHandler<String>() {
private ByteArrayOutputStream bytes = new ByteArrayOutputStream();
@Override
public STATE onBodyPartReceived(
HttpResponseBodyPart bodyPart) throws Exception {
String data = new String(bodyPart.getBodyPartBytes());
System.out.println("My Message : ---------------------------- >" + data);
return STATE.CONTINUE;
}
});
f.get();
}
メッセージ本文の部分を蓄積しようとしましたが、メッセージの終わりを知るためにサーバー サイズの別のロジックが必要です。
ありがとう、
ラヴィ