Как проверять активность пользователя на странице React?

Есть такая задачка:

Когда пользователь находиться на странице и ничего не делает (просто сидит и читает статью или просто отошёл от экрана) запускается таймер и если за это время пользователь не делал никаких действий - его нужно выкинуть из профиля. На беке у меня есть свойство, которое true до тех пор, пока пользователь делает запросы и у его есть 30 минут чтобы сделать ещё один запрос, чтобы обнулить таймер и если он его не сделает - false.

Думал сделать это при помощи Page Visibility API, но в документации не нашёл такого значения, которое будет отвечать за то, что страница активная, а действий никаких нет. Видел ещё на данном форуме еще одну реализацию через прослушивание событий.

Сам думал сделать на фронте через сеттаймаут (каждую минуту отправлять запрос и проверять какое значение имеет это поле), но если будет много пользователей - боюсь нагрузка будет очень большая, т.к будет очень много запросов.

Какие есть ещё способы реализации данной задачи и какая будет самая оптимальная в плане быстродействия? Ибо по мере роста сайта - боюсь второй вариант сильно повлияет на быстродействие.


Ответы (0 шт):