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