HttpServletRequest が中止されたかどうかを確認する方法はありますか?
私はインスタント ブラウザ アプリケーション (ある種のチャット) を作成しています。クライアントは、AJAX-HTTP-Requests を使用してループ内で新しいイベントを要求します。サーバー (Tomcat) は、HttpServlet でリクエストを処理します。このクライアントに新しいイベントがない場合、サーバーは、新しいイベントが到着するか、タイムアウトが発生するまで (30 秒) 応答を遅らせます。
ここで、ポーリングを行っていないクライアントを特定したいと考えています。したがって、リクエストの最後にキックタイマーを開始し、新しいリクエストが到着すると停止します。クライアントがブラウザ ウィンドウを閉じると、TCP 接続が閉じられ、HTTP 要求が中止されます。
問題:サーブレットが引き続きイベント要求を処理するため、クライアントはキック タイムアウトになりません。スリープ状態でイベントまたはタイムアウトを待機します。
どうにかして接続中止イベントをリッスンし、それを停止するために待機中のリクエストを通知できれば素晴らしいと思います。しかし、HttpServletRequestまたはHttpServletResponseでそのようなものを見つけることができませんでした...