Вы можете использовать свойство IsClientConnected
класса HttpResponse
для обнаружения клиентского соединения.
Вот небольшой пример:
Response.ContentType = "text/event-stream";
while (true)
{
Response.Write(string.Format("data: {0}\n\n", DateTime.Now.ToString()));
Response.Flush();
if (Response.IsClientConnected == false)
{
break;
}
System.Threading.Thread.Sleep(1000);
}
Итак, используя IsClientConnected
свойство, которое вы должны быть в состоянии обнаружить:
- На стороне клиента закрытие источника с помощью
source.close()
. - Закрытие соединения путем закрытия окна браузера или перехода на другой веб-сайт.
Я проверил свой код с использованием ASP.Net 4.0 и Google Chrome.