如何获取网站的当前活动会话ID(当前用户除外)

时间:2012-11-16 08:54:00

标签: php session login chat

我正在使用PHP进行聊天应用程序。在这里,我将一个登录session_id保存到我的数据库中。当用户注销时,我将此session_id设置为null。所以通过这种方式我得到了其他用户登录的用户。我的脚本每5秒检查一次这个session_id&聊天框打开时的相应消息。

现在假设用户已关闭浏览器本身,然后如何将他从聊天框活动用户列表中删除?

当我们关闭浏览器时,会话将过期。有什么东西我可以跟踪哪些session_id目前在特定网站的服务器上是活动的?

或者有没有办法在PHP中跟踪聊天应用程序的所有活动用户?我没有得到我在这里缺少的参数。

请帮帮我。

1 个答案:

答案 0 :(得分:3)

卢卡斯究竟是怎么说的。有一个时间戳字段calld例如“last_seen”并且每5秒钟通过AJAX更新一次(无论如何你现在正在做什么)。然后,您可以考虑此查询返回为活动状态的所有用户:

SELECT * FROM user WHERE last_seen > CURRENT_TIMESTAMP - 30;

并且所有其他人都离线(关闭浏览器或某事)。

在上面的查询中,我们假设如果用户没有被看到30秒 - 他就离线了。此值可以更低,但必须高于5秒(刷新间隔),因为更新last_seen列时可能会有一些延迟。