#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