httpsession не истекает, когда включен обратный Ajax - PullRequest
2 голосов
/ 28 октября 2009

У меня есть веб-приложение, которое использует DWR обратный Ajax (для pollAndCometEnabled установлено значение true) В моем web.xml я установил таймаут 30 минут для HttpSession. Поскольку DWR опрашивает сервер, сеанс http всегда активен, и в результате он никогда не истекает, даже если взаимодействие с пользователем неактивно в течение более 30 минут. Кто-нибудь знает, как решить эту проблему?

1 Ответ

0 голосов
/ 12 февраля 2010

Я могу придумать для вас 3 разных варианта ...

1) хранить ваши кометные запросы на домене, который не использует сеансовые куки; В качестве дополнительного преимущества вы также сократите накладные расходы на запрос

2) контролировать время ожидания на стороне клиента. в зависимости от настроек вашего приложения, это может быть немного сложнее, но setTimeout - невероятно простое решение; недостатком является то, что вы не действительно истекаете их, так что сессия технически все еще действительна для сервера, но с другой стороны, вы можете легко дать им приятное предупреждение "ваш сеанс истекает".

3) Отслеживать активность с сервера; Поскольку вы используете кометное решение, вы можете отслеживать сеансы на сервере, а когда сеанс заканчивается, отправить клиенту сообщение, уведомляющее его о завершении сеанса. Это лучший вариант, если вы не можете переключать домены, потому что вы можете удалить сеанс на сервере и одновременно сообщить об этом клиенту.

...