我正在建立一个具有聊天功能的网站,我需要跟踪在线和离线用户。为了跟踪在线用户,我正在使用此表
用户 ID | 时间戳
我为所有在线用户每 20 秒更新一次时间戳。因此,只需将当前时间戳与表中的时间戳进行比较,我就可以找出谁都离线。
现在问题是这样的:我使用长轮询来更新用户的在线状态。也就是说,当用户登录时,我对一个看起来像这样的脚本运行 ajax 调用。
<?php
set_time_limit(0);
while(1){
updateUserTimestamp();
sleep(20);
}
?>
上面的代码运行良好。但问题是,即使在用户关闭浏览器后,它仍像幽灵进程一样继续运行,并不断更新时间戳并占用资源。我希望它在客户端关闭浏览器时停止。
请帮忙。