Как определить, подключен ли определенный пользователь (не current_user) к restful_authentication? - PullRequest
0 голосов
/ 07 августа 2010

Я должен знать, является ли пользователь онлайн или нет, не текущий аутентифицированный пользователь, но любой другой. Есть ли в restful_authentication какие-либо методы для его определения?

Ответы [ 2 ]

2 голосов
/ 07 августа 2010

Единственный способ узнать, есть ли кто-то в сети (и просматривает ли ваш сайт), - это открыть ему открытую связь.Но после загрузки страницы HTTP-соединение с вашим сервером закрывается, и клиент больше не обращается к вашему серверу, пока не захочет увидеть другую страницу.

Учитывая это, вы можете сделать следующее:

  1. Догадайтесь, если клиент все еще там, предполагая, что он «в сети» в течение x минут после того, как он в последний раз запросил страницу.
  2. Пусть клиент отправит «сердцебиение» наваш сервер через регулярные промежутки времени, используя Javascript, затем примените 1.
  3. На самом деле клиент должен поддерживать постоянное соединение с вашим сервером, используя что-то вроде Comet , что даст вам наиболее точный результат.

Что наиболее уместно, зависит от того, насколько точным должен быть ваш статус.

0 голосов
/ 03 января 2014

Если ваши пользователи войдут в систему, вы можете добавить столбец в таблицу пользователей, например,

rails g migration add_online_to_users online:boolean

и каждый раз, когда пользователь начинает новый сеанс, вы можете заполнить этот столбец 'true'

user.online = true

и когда пользователь выходит из системы, вы можете поставить

user.online = false в ваших сеансах уничтожить методом

...