Есть ли способ узнать, прерван ли HttpServletRequest?
Я пишу мгновенное браузерное приложение (какой-то чат): клиенты запрашивают новые события в цикле, используя AJAX-HTTP-запросы. Сервер (Tomcat) обрабатывает запросы в HttpServlet. Если для этого клиента нет новых событий, сервер задерживает ответ до тех пор, пока не поступит новое событие или не истечет время ожидания (30 секунд).
Теперь я хочу определить клиентов, которые больше не опрашиваются. Поэтому я запускаю кик-таймер в конце запроса, который останавливается при поступлении нового запроса. Если клиент закрывает окно браузера, TCP-соединение закрывается, и HTTP-запрос прерывается.
Проблема: Клиент не сталкивается с тайм-аутом удара, потому что сервлет все еще обрабатывает запрос на событие - бездействует и ожидает события или тайм-аута.
Было бы здорово, если бы я мог каким-то образом прослушивать события прерывания соединения, а затем уведомлять об ожидающем запросе, чтобы остановить его. Но я не смог найти ничего подобного в HttpServletRequest или HttpServletResponse...