JAVA ベースのコメット HTTP ストリーミングを作成しようとしています。これにはApache httpClient 4.xを使用しています。これはコメット HTTP ストリーミングであるため、すべてのイベントはチャンク データの形式でクライアントに送信されます。接続が長時間開いたままになる可能性があるため、サーバーからの readLine() データの後に SO_TIMEOUT の動的設定を実装しようとしています。
BufferedInputStream から readLine の後に SO_TIMEOUT の値を設定すると、有効になりません。execute() メソッド呼び出しの前に設定された元の SO_TIMEOUT 値が引き続き使用されます。
以下は、Apache Web サイトからの SO_TIMEOUT の定義です。 ソケット タイムアウト (SO_TIMEOUT) をミリ秒単位で定義します。これは、データを待機するためのタイムアウト、または別の言い方をすれば、2 つの連続するデータ パケット間の最大非アクティブ期間です)。ゼロのタイムアウト値は、無限のタイムアウトとして解釈されます。
上記の定義に従って、SO_TIMEOUT 値は、すべてのチャンク データの到着時に apache httpclient によってリセットされる必要があります。その場合は、新しい SO_TIMEOUT 値を受け入れる必要があります。BufferedInputStream から数行を読み取った後に SO_TIMEOUT 値を設定する方法について何か考えはありますか?