有没有办法找出 HttpServletRequest 是否被中止?
我正在编写一个即时浏览器应用程序(某种聊天):客户端使用 AJAX-HTTP-Requests 在循环中请求新事件。服务器 (Tomcat) 在 HttpServlet 中处理请求。如果此客户端没有新事件,服务器会延迟回复,直到有新事件到达或发生超时(30 秒)。
现在我想识别不再轮询的客户端。因此,我在请求结束时启动了一个 kick-Timer,当新请求到达时它会停止。如果客户端关闭浏览器窗口,TCP-Connection 将关闭,HTTP-Request 将中止。
问题:客户端没有遇到 kick-Timeout,因为 Servlet 仍在处理事件请求 - 休眠并等待事件或超时。
如果我能以某种方式监听连接中止事件,然后通知等待请求以停止它,那就太好了。但我在 HttpServletRequest 或 HttpServletResponse 中找不到类似的东西......