точного метода нет
самый лучший способ - отслеживать его последнее действе, например, переход по страницам.
Такая метода у Вк - если ты какое-то время ничего не делал, тебе ставят статус оффлайн, пока куда-нибудь не кликнешь. Таймер от последнего действия до оффлайна у них в районе 15-20 минут
а как именно происходит взаимодействие? получается, на стороне сервера скрипт, который запускается каждые 15 минут и проверяет чтобы дата последнего действия была ранее 15 минут или как?
если не прямо реалтайм то периодически посылайте запрос тем же аяксом на сервер. Последнюю дату прихода запроса можно считать временем ухода + погрешность зависимая от периодичности запросов.
Я делал глобальный middleware который обновлял онлайн пользователя при каждом запросе. (Редис + ID с бд).
Потом когда кто то заходил на профиль человека то просто проверял онлайн ли он (если прошло больше 5 минут с последнего действия то говорил что он off и писал в редис off и потом уже не сверял время).