6

HttpListener は応答ストリームを提供しますが、フラッシュを呼び出しても意味はありません (実際には何もしていないため、ソースから明らかです)。HTTP API を掘り下げると、これが HttpListener 自体の制限であることがわかります。

HttpListener の応答ストリームをフラッシュする方法を正確に知っている人はいますか (リフレクションまたは追加の P/Invokes を使用している可能性があります)。

更新:フラッシュ オプションがない場合、またはバッファ サイズを定義する機能がない場合は、何も HTTP ストリーミングできません。

4

2 に答える 2

2

Transfer-Encoding が Chunced に設定されている場合、Flush はほとんどの System.Net 名前空間でのみ機能します。それ以外の場合は、要求全体が返され、Flush は実際には何もしません。少なくとも、これは私が HttpWebResponse で作業しているときに経験したことです。

于 2009-04-27T16:17:17.473 に答える
0

これはまだ試していませんが、ストリーミング応答用に別の TCP サーバーを作成するのはどうですか? 次に、HttpListener からの要求を「内部」TCP サーバーに転送します。このリダイレクトを使用すると、必要に応じてデータをストリーミングして戻すことができる場合があります。

それをフラッシュすることに関しては、実際に破棄せずに、破棄をシミュレートすることしかできません。HttpResponseStream オブジェクトをハックして、破棄するように指示したり、m_Closed フラグを設定解除したりすることができれば、ストリーミング データをフラッシュできる可能性があります。

于 2009-04-27T17:08:43.387 に答える