Я создаю веб-сайт с функцией чата, и мне нужно отслеживать пользователей онлайн и офлайн. Для отслеживания онлайн-пользователей я использую эту таблицу
идентификатор_пользователя | отметка времени
Я обновляю отметку времени каждые 20 секунд для всех онлайн-пользователей. Поэтому я могу узнать, кто из них не в сети, просто сравнив текущую отметку времени с отметкой времени в таблице.
Теперь проблема заключается в следующем: я использовал длинный опрос для обновления онлайн-статуса пользователей. То есть, когда пользователь входит в систему, я запускаю ajax-вызов скрипта, который выглядит следующим образом.
<?php
set_time_limit(0);
while(1){
updateUserTimestamp();
sleep(20);
}
?>
Приведенный выше код работает отлично. Но проблема в том, что даже после того, как пользователь закрывает браузер, он продолжает работать как призрачный процесс и продолжает обновлять отметку времени и занимать ресурсы. Я хочу, чтобы он остановился, когда клиент закрывает браузер.
Пожалуйста помоги.