Количество онлайн — пользователей и посещений приложений в одностраничном приложении

#reactjs #angularjs #vue.js #single-page-application #svelte

Вопрос:

Я делаю СПА-салон (приложение на одной странице) и хочу показать количество онлайн-пользователей и посещений приложений в панели администратора, как показано ниже:

пользователи в Интернете: 5 человек

Сегодня посещений: 12 человек.

В этом году посещений: 5263 человека.

Я не знаю, какова надлежащая процедура для этого.

То, что я делаю в качестве решения, — это создаю конечную точку на сервере для вычисления количества онлайн-пользователей и посещений. В клиенте я создал случайную строку в качестве ключа пользователя и сохранил ее в localStorage .Затем я setInterval отправлял запрос с полезной нагрузкой ключа пользователя на конечную точку каждые 5 минут. Эта конечная точка вычисляет количество онлайн-пользователей и посещений на основе ключа пользователя, текущей даты и времени. Расчеты не точны на 100%, но меня это устраивает.

Я не уверен, что нахожусь на правильном пути. Пожалуйста, поделитесь со мной своим советом.

Ответ №1:

Websockets (толкатель) должен быть правильным решением для вашего случая. Таким образом, вам не придется проводить опрос каждые 5 минут.

Видишь https://pusher.com/docs/channels/getting_started/javascript/?ref=docs-index Это бесплатно, но только для 50 пользователей, если вы хотите больше пользователей, вы также можете запустить собственный сервер Websocket. Что немного сложнее (без внешних библиотек, конечно).

Комментарии:

1. Спасибо, но я не думаю, что использование сокетов-хороший способ для этой работы из-за давления, которое он оказывает на сервер

Ответ №2:

Вы можете просто сделать это с помощью Navigator.onLine : Источник

Комментарии:

1. Я читал об этом по упомянутой ссылке, но не могли бы вы сказать мне, как это может мне помочь?

2. Вот пример. Остальное зависит от вашего воображения. alligator.io/js/navigator-online