Я пытаюсь выйти из системы по истечении времени ожидания сеанса пользователя. Выйти из системы - в моем случае - требуется изменить статус «онлайн» пользователя в базе данных.
Я думал, что смогу использовать шаблон наблюдателя для создания чего-то, что будет контролировать состояние пользовательского сеанса и инициировать обратный вызов по окончании сеанса, что сохранит имя пользователя, чтобы мы могли обновить базу данных. Я не совсем уверен, с чего начать на стороне сессии. Могу ли я привязать обратный вызов к тайм-ауту сеанса?
встроены ли эти вещи в любые доступные сессионные пакеты pear или zend? Я буду использовать все, что мне нужно, чтобы это произошло!
ОБНОВЛЕНИЕ @ 16: 33:
Что если у вас есть система, где пользователи могут взаимодействовать друг с другом (но они могут взаимодействовать только с онлайн-пользователями)? Пользователь должен знать, какие другие пользователи онлайн в настоящее время.
Если мы просто проверяем, активен ли сеанс при каждом обновлении страницы, то по истечении некоторого времени пользователь отправляется на незарегистрированную страницу, но в системе он по-прежнему отображается как онлайн. *
Этот метод подойдет, за исключением того, что когда мы прекращаем сеанс, мы теряем информацию о пользователе, которая может быть использована для его выхода из системы.
ОБНОВЛЕНИЕ @ 16: 56:
право. Благодарю. Я согласен ... вроде некрасиво. У меня уже есть некоторые медленные опросы сервера, поэтому было бы довольно легко реализовать этот метод. Это просто кажется такой полезной функцией для пакета обработки сеанса. Zend и PEAR имеют сессионные пакеты.