Онлайн пользователи в Ruby on Rails
-
07-07-2019 - |
Вопрос
Как проще всего проверить, подключен ли пользователь к сети, и отобразить список онлайн-пользователей?
Единственный способ, с помощью которого я могу думать, - это какой-то периодический сервер опроса, чтобы обновить метку времени последнего действия , и когда последняя метка времени больше, чем xx назад, пользователь считается отключенным. Но это не кажется слишком эффективным решением.
Решение
Authlogic может сделать это по умолчанию, и это отличная система аутентификации, которая является очень мощной. Я бы предложил перенести вашу текущую систему аутентификации на нее (может быть, стоит потраченных дней, в зависимости от того, как настроена ваша система).
Если вы не можете (или просто не хотите) переместить свое приложение в Authlogic, вы можете проверить исходный код по ссылке выше, а также пример проекта здесь .
Другие советы
Вы можете проверить время сеанса, если используете хранилище сеансов базы данных. Когда updated_at проходит через определенное время, предположим, что пользователь больше не активен. Однако это может быть проблематично.
Честно говоря, это довольно сложный сценарий, чтобы определить активное число пользователей без какой-либо формы периодического опроса сервера. Ваша мысль не плохая.
Мы можем составить список пользователей в Интернете, использующих хранилище сеансов активной записи. Посетите это приложение github https: / /github.com/mohanraj-ramanujam/online-users р>