【问题标题】:How to get currently active session id (other than current user) for a website如何获取网站的当前活动会话 ID(当前用户除外)
【发布时间】:2016-06-16 17:34:12
【问题描述】:

我正在使用 PHP 开发一个聊天应用程序。在这里,我将一个登录名session_id 保存到我的数据库中。当用户注销时,我将此session_id 设置为空。因此,通过这种方式,我可以获取其他用户的登录信息。我的脚本每 5 秒检查一次 session_id 和相应的消息(如果聊天框打开)。

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

当我们关闭浏览器时,会话将过期。有什么我可以追踪到的所有session_id 当前在特定网站的服务器上处于活动状态的东西吗?

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

请帮帮我。

【问题讨论】:

  • 如果您在要更新的表中添加了时间戳,您可以将其设置为如果一分钟左右没有更新则停止显示它们。
  • 这可能是一种可能的方式。我错过了这个。

标签: php session login chat


【解决方案1】:

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

SELECT * FROM user WHERE last_seen > CURRENT_TIMESTAMP - 30;

所有其他人都处于离线状态(关闭浏览器或某事)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多