Чтобы узнать, находится ли пользователь на сайте, вы можете каждую минуту отправлять запрос AJAX с клиента на сервер, а на стороне сервера проверять время между полученными запросами, чтобы убедиться, что его больше нет на странице.
Если вы хотите определить, является ли пользователь «AFK», но веб-сайт все еще открыт в его браузере, вам нужно будет добавить глобальные события для нажатий клавиш, нажатий мыши и перемещения мыши и только отправлятьAJAX-запрос каждую минуту, если в последнюю минуту было запущено одно из этих событий.