背景: GPRS デバイスの 1 つがプロキシ経由で汎用ハンドラーに接続する際に問題が発生しています。ハンドラーは戻った直後に接続を閉じますが、プロキシは接続を開いたままにしますが、これはデバイスが予期していません。
私の質問:テスト目的で (プロキシの動作を模倣するため)、ハンドラーがデータを返した後、しばらくの間接続を維持することは可能ですか?
たとえば、これは機能しません。
public class Ping : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.BufferOutput = false;
context.Response.ContentType = "text/plain";
context.Response.WriteLine("HELLO");
context.Response.Flush(); // <-- this doesn't send the data
System.Threading.Thread.Sleep(10000);
}
public bool IsReusable
{
get
{
return false;
}
}
}
[編集]
わかりました、実際には、期待どおりに動作します。問題は、Firefox と Fiddler の両方が、接続が閉じられるまで生データの表示を遅らせることです。
がResponse.BufferOutput
に設定されてfalse
いて、端末プログラムを使用して接続すると、データがすぐに取得され、接続が 10 秒間開いたままになります。