Как определить, зарегистрирован ли пользователь в Symfony?
Мне нужно знать, как я могу получить, если в приложении зарегистрирован конкретный пользователь Symfony, есть ли способ получить идентификатор сеанса для текущих зарегистрированных пользователей?
Я пытался с таблицей, когда у меня есть поле с именем is_online
и y установить его, когда пользователь входит и выходит из приложения, поэтому у меня возникает проблема, когда пользователь закрывает браузер или когда заканчивается сеанс, поэтому поле is_online
оставайся честным. Это причина того, что мне нужен другой способ получить, если пользователь вошел в приложение.
Любой совет будет полезен.
2 ответа
Вы можете отправить ajax-запрос от пользователей, и как только кто-то не отправит запрос, например, в течение 1 минуты, измените его статус на оффлайн Будет хорошей идеей хранить статусы в некотором хранилище значений ключей, например MemCache. Смотрите здесь для деталей.
Создайте поле базы данных как lastonlinetstamp
и ping
метод в ajax, который вызывает сервис с одним и тем же сеансом каждую минуту. Затем позвольте службе ping обновить lastonlinetstamp
, Если это значение старше 1 минуты, вы знаете, что пользователь не в сети. Но: это увеличит количество запросов к вашему серверу.