Онлайн пользователи в Ruby on Rails - PullRequest
1 голос
/ 15 сентября 2009

Какой самый простой способ проверить, находится ли пользователь в сети, и отобразить список онлайн-пользователей?

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

Ответы [ 3 ]

6 голосов
/ 15 сентября 2009

Authlogic может делать это по умолчанию, и это очень мощная система аутентификации. Я бы предложил перенести вашу текущую систему аутентификации на нее (возможно, на несколько дней работы, в зависимости от того, как настроена ваша система).

Если вы не можете (или просто не хотите) переместить ваше приложение в Authlogic, вы можете проверить исходный код по ссылке выше, а также пример проекта здесь .

1 голос
/ 15 сентября 2009

Вы можете проверить время сеанса, если используете хранилище сеансов базы данных. Когда updated_at проходит через определенное время, предположим, что пользователь больше не активен. Однако это также может быть проблематично.

Честно говоря, это довольно сложный сценарий для определения активного числа пользователей без какой-либо периодической опроса сервера. Ваша мысль не плохая.

0 голосов
/ 15 июля 2013

Мы можем перечислить онлайн-пользователей, использующих хранилище сеансов активной записи, см. Это приложение github https://github.com/mohanraj-ramanujam/online-users

...