DWRリバースAjaxを使用するWebアプリケーションがあります(pollAndCometEnabledがtrueに設定されています)。web.xmlで、HttpSessionに30分のタイムアウトを設定しました。DWRはサーバーをポーリングするため、httpセッションは常にアクティブであり、その結果、ユーザーの操作が30分以上非アクティブであっても、期限切れになることはありません。誰かがこの問題を解決する方法を知っていますか?
1 に答える
0
私はあなたのために3つの異なるオプションを考えることができます...
1) セッション Cookie を使用しないドメインでコメット リクエストを保持します。副次的な利点として、リクエストのオーバーヘッドも削減できます
2) クライアント側でタイムアウトを監視します。アプリケーションのセットアップによっては、これは少し面倒かもしれませんが、setTimeout は信じられないほど簡単な解決策です。欠点は、実際には有効期限が切れていないため、セッションは技術的にサーバーに対して引き続き有効ですが、利点は、「セッションの有効期限が切れようとしています」という素晴らしい警告を簡単に与えることができることです。
3) サーバーからのアクティビティを監視します。コメット ソリューションを使用しているため、サーバー上のセッションを監視できます。セッションが期限切れになると、セッションが終了したことをクライアントに通知するメッセージをクライアントにプッシュします。これは、ドメインを切り替えることができない場合に最適なオプションです。これは、サーバー上のセッションを破棄し、同時にクライアントに知らせることができるためです。
于 2010-02-12T13:26:25.080 に答える