CrewCut
@CrewCut
Коплю силы на переезд в тропики

Как фиксировать уход пользователя с сайта?

Нужно написать штуковину, которая будет при заходе посетителя на сайт фиксировать этот заход, а после того, как он уйдет с сайта, фиксировать уход.

С заходом всё понятно - при загрузке страницы аякс-запрос на сервер, а как уловить то, что человек закрыл вкладку с сайтом?
  • Вопрос задан
  • 710 просмотров
Решения вопроса 1
точного метода нет
самый лучший способ - отслеживать его последнее действе, например, переход по страницам.
Такая метода у Вк - если ты какое-то время ничего не делал, тебе ставят статус оффлайн, пока куда-нибудь не кликнешь. Таймер от последнего действия до оффлайна у них в районе 15-20 минут
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
onbeforeunload - но надо найти фиксы на FF, там асинхронность и всё такое, запросы обрываются не дойдя до сервера.

А более простой иногда - websocket сервер.
Пустой websocket в котором висит on disconnect событие.

Т.е. когда человек отключился - ушел с сайта - занесли куда-надо в базу.
Ответ написан
@DuD
если не прямо реалтайм то периодически посылайте запрос тем же аяксом на сервер. Последнюю дату прихода запроса можно считать временем ухода + погрешность зависимая от периодичности запросов.
Ответ написан
Комментировать
miraage
@miraage
Старый прогер
window.onbeforeunload
Ответ написан
Комментировать
VGrabko
@VGrabko
Golang, Php, Js
Как делал я в php only проектах.

Я делал глобальный middleware который обновлял онлайн пользователя при каждом запросе. (Редис + ID с бд).

Потом когда кто то заходил на профиль человека то просто проверял онлайн ли он (если прошло больше 5 минут с последнего действия то говорил что он off и писал в редис off и потом уже не сверял время).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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