2016-11-17 7 views
0

Предположим, что для чата я хотел бы показать для пользователя, сколько пользователей сейчас в сети (в основном, сколько людей смотрят сейчас).Как реализовать функцию «смотреть сейчас» для веб-страницы в Rails и actioncable

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

Я думаю, что этот подход может быть улучшен, если я могу поймать событие, когда сервер закрыт, чтобы я установил все такие счетчики redis равными нулю, однако не уверен, как поймать такое событие (я использую nginx с пассажиром) , Так любая помощь?

+0

Почему бы не просто установить истечение срока действия счетчика redis, для этой конкретной проблемы? –

ответ

0

Непросто узнать, когда сервер закрыт, но всегда легко узнать, когда сервер запущен. Почему бы не сбросить эти счетчики при запуске сервера? Добавьте операцию сброса в сценарии запуска сервера.

 Смежные вопросы

  • Нет связанных вопросов^_^