Справочная информация: у нас возникли проблемы с одним из наших устройств GPRS, подключающихся через прокси к универсальному обработчику. Хотя обработчик закрывает соединение сразу после возврата, прокси-сервер сохраняет соединение открытым, чего устройство не ожидает.
Мой вопрос: Возможно ли для целей тестирования (чтобы имитировать поведение прокси) поддерживать соединение в течение некоторого короткого времени после того, как обработчик вернул свои данные?
Например, это не работает:
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 с.