@tsimur

Как определить пользователей, которые сейчас на сайте?

Как определить пользователей, которые сейчас на сайте?
И как сохранить список страниц, которые конкретный пользователь посетил за конкретный период?
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
Poznakomlus
@Poznakomlus
Программист: php, js, go
Подымаете вебсокеты, отслеживаете onopen, onclose пользователя
Пишите опрос пользователей и по таймауту опрашиваете реализовав ping pong (так как возможны варианты когда не будет onclose )
Другого варианта как бы и нет
Пользователь может зайти и у него отлючиться инетернет
Можно счтитаь активными пользователями тех, которые были активны в течении последнего промежутка времени
Писав лог их посещений.
А если более мене точно то это WebSocket
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Как определить пользователей, которые сейчас на сайте?
Вариантов много, самый простой - пинг метод. На бэке заводите хранилище (массив, файлик, бд, не суть важно) в который добавляете пришедшего на сайт пользователя и метку времени входа. Далее на фронте каждые N секунд запрашиваете сервер на скрипт, который обновляет метку времени пользователя в хранилище. Можно там же получать в ответ всех активных. Все. Погрешность в N секунд.

И как сохранить список страниц, которые конкретный пользователь посетил за конкретный период?
Логи. Тоже не суть важно файл или бд, как удобнее. Зашел на страницу - в бд записалось время, урл, айди юзера.
Ответ написан
@d-sem
При каждом запросе на бек определять, какой пользователь его делает и на какой эндпоинт. Собирать статистику этих запросов. На их основании считать кто недавно был на сайте. Вариант функционала а ля кто был на сайте за последние 5 минут.

Если нужно прям реалтайм - делать регулярное обращение с фронта на эндпоинт статистики с нужной периодичностью. Если скажем цепочка обращений прервалась - то считать что пользователь ушел. А пока не прервалась - пользователь на странице.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы