2013-06-18 2 views
0

У меня есть веб-сайт, на котором используется Long Poll, чтобы дождаться завершения обработки некоторых данных сервером. Однако может возникнуть тайм-аут или пользователь может закрыть свой браузер, но сервер постоянно обрабатывает его данные.
Я хочу, чтобы сервер прекратил обработку данных, как только соединение Long Poll нарушено. Нет ни одного клиента, который получит данные, поэтому для продолжения этого длительного процесса нет смысла ... Как это сделать?Обнаружение, если соединение с клиентом браузера разбито

Сервер работает над добавлением файлов в ZIP-архив, который занимает некоторое время, так как это разумные большие файлы. Как только это будет сделано, он отправит окончательный файл ZIP и закроет соединение. Но если клиент отключился до того, как задача будет завершена, сервер должен прекратить работу и снова отменить все ...

ответ

3

Вам следует рассмотреть возможность использования рамки SignalR. Он предлагает очень удобные события, как OnConnect() и OnDisconnect(). Под капотом он работает с

  • WebSockets
  • Сервер Направлено События
  • навсегда Кадр
  • Длинный опрос

Он использует все, что доступно с данной средой, начиная с WebSockets.

+1

Правда. Только HTML5 является требованием, и несколько пользователей все еще находятся в старых браузерах. –

Смежные вопросы