Управление сеансом сервлета

У меня проблема с управлением сессиями. Я работаю над веб-приложением для карточных игр (используя Ajax, Tomcat, Java). У меня есть страница входа, комната ожидания и игровая доска. Поэтому, когда человек вошел в систему, если в комнате ожидания никого нет, я перенаправляю его в комнату ожидания и создаю пользователя объекта с его идентификатором сеанса, объектом ответа и псевдонимом. Когда зашел еще один пользователь, и сервлет "видит", что в зале ожидания уже есть пользователь, я создал нового пользователя, сохранил все его данные и перенаправил его на игровое поле. Также мне нужно перенаправить ожидающего пользователя на игровое поле. Но когда я попытался сделать это, используя его объект ответа, на самом деле я отправляю ответ второму пользователю, и ожидающий пользователь не получил ответа. Итак, вопрос в том, как я могу перенаправить ожидающего пользователя на игровое поле после того, как второй пользователь вошел в систему? Должен ли ожидающий пользователь отправлять запрос каждые t миллисекунд сервлету, чтобы проверить, есть ли кто-то, готовый играть в игру? Или есть другой способ управлять 2 сеансом?


person Tamara Bozz    schedule 28.07.2013    source источник
comment
Вам необходимо обрабатывать данные текущих пользователей не только на уровне сеанса, но и на уровне приложения. Это можно сделать, сохранив данные в ServletContext. Кроме того, вам необходимо обновить представление ожидающего клиента, для этого вы можете использовать Atmosphere framework   -  person Luiggi Mendoza    schedule 28.07.2013
comment
Я думаю, что вопрос касается технологий проталкивания сервером. Начните с чтения вики-страницы, а затем, возможно, взгляните на фреймворк Atmosphere.   -  person Boris the Spider    schedule 28.07.2013
comment
Да, вы могли бы время от времени проводить опрос пользователей или рассмотреть возможность отправки на сервер, как упомянул Борис.   -  person Darius X.    schedule 30.07.2013