Как найти клиент asp.net отключен сразу - PullRequest
4 голосов
/ 20 февраля 2011

Я знаю о Response.IsClientConnected, но в моем сценарии у него большое отставание. Код:

// sample code for sending a dynamic file in chuncks

long bytesSent = 0;

while (continueSending)
   {
      if (!AskReceiverToContinue())
         break;

      if (!Response.IsClientConnected)
         break;

     // Your suggestion goes here... :)

      try
      {
         Response.OutputStream.Write(buffer, 0, buffer.Length);
         bytesSent += buffer.Length;
      }
      Catch
      {  // To my experience, this is more reliable than Response.IsClientConnected
         continueSending = false;
      }
   }

Проблема в том, что фактический объем полученных байтов клиентом намного меньше моего bytesSent. Кажется, когда клиент отключается, моя программа обнаруживает ситуацию с большим лагом (и продолжает увеличиваться bytesSent), и это потому, что ASP.NET сообщает мне ситуацию (клиент отключен) поздно.

Есть ли надежный способ узнать, когда клиент был отключен (в режиме реального времени)?

1 Ответ

1 голос
/ 20 февраля 2011

Вы переводите по HTTP, не так ли?Если да, то нет способа из-за отсутствия протокола HTTP.Единственное, что вам нужно, это тайм-аут, который вы уже используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...