我正在使用PHP进行聊天应用程序。在这里,我将一个登录session_id
保存到我的数据库中。当用户注销时,我将此session_id
设置为null。所以通过这种方式我得到了其他用户登录的用户。我的脚本每5秒检查一次这个session_id
&聊天框打开时的相应消息。
现在假设用户已关闭浏览器本身,然后如何将他从聊天框活动用户列表中删除?
当我们关闭浏览器时,会话将过期。有什么东西我可以跟踪哪些session_id
目前在特定网站的服务器上是活动的?
或者有没有办法在PHP中跟踪聊天应用程序的所有活动用户?我没有得到我在这里缺少的参数。
请帮帮我。
答案 0 :(得分:3)
卢卡斯究竟是怎么说的。有一个时间戳字段calld例如“last_seen”并且每5秒钟通过AJAX更新一次(无论如何你现在正在做什么)。然后,您可以考虑此查询返回为活动状态的所有用户:
SELECT * FROM user WHERE last_seen > CURRENT_TIMESTAMP - 30;
并且所有其他人都离线(关闭浏览器或某事)。
在上面的查询中,我们假设如果用户没有被看到30秒 - 他就离线了。此值可以更低,但必须高于5秒(刷新间隔),因为更新last_seen列时可能会有一些延迟。