http сервер может обнаружить, что клиент отменил их запрос?

Мое веб-приложение должно обработать и служить большому количеству данных для отображения определенных страниц. Иногда, пользователь закрывает или обновляет страницу, в то время как сервер все еще занят, обрабатывая ее. Это означает, что сервер продолжит обрабатывать данные в течение нескольких минут только, чтобы отправить его клиенту, который больше не слушает.

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

В этом конкретном проекте мы используем Django и NginX или Apache. Я предположил, что это возможно, потому что сервер разработки Django, кажется, реагирует на отмененные запросы путем печати Поврежденных исключений Канала. Я хотел бы иметь его, повышают исключение, которое мог поймать мой код приложения. Кажется, что JSP может сделать это. Так может node.js здесь.

С другой стороны, я мог зарегистрировать разгрузить обработчик событий на рассматриваемой странице, иметь ее, делают синхронный запрос XHR, чтобы предыдущий запрос от этого пользователя быть отмененным, и сделал некоторое межпроцессное взаимодействие для создания ее так. Возможно, если более медленная обработка данных была вручена другому процессу, который я мог более легко определить и уничтожить, не уничтожая процесс ответа...

26
задан Community 23 May 2017 в 11:54
поделиться

1 ответ

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

См. Ответы на этот SO вопрос (сервлет Java: как определить закрытие браузера?).

0
ответ дан 28 November 2019 в 17:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: