繁体   English   中英

如何找出创建的会话总数,即已登录的用户数?

[英]How do I find out total number of sessions created i.e. number of logged in users?

嗨,大家好,我有一个简单的基于成员资格的网站,用户可以登录并拥有自己的个人资料。 我希望能够在任何给定的时间点告诉我当前有多少用户或哪些用户登录了我的网站。

它是一个基于php的简单的基于成员资格的系统。 我了解它的一种方式是在数据库中创建一个表,并在那里存储登录详细信息和会话数据,但是可以通过其他方式完成,即无论如何找出已经启动了多少会话以及所有唯一用户在线。

最好的方法是记录每个用户的lastActivityTime 当他们访问页面时,将时间记录在他们的数据库记录中。 完成此操作后,运行一个简单的查询以计算lastActivityTime距离Current Time少于5分钟的所有记录。

因此,您不是在询问“有多少用户登录”,而是在询问“最近有多少用户处于活动状态”。

整个“监视活动会话”问题的关键问题是您(服务器)不一定完全控制会话。 用户的浏览器可以在任何给定时间使会话期满,因此您不能保证任何时候的活动用户。

如果了解当前用户非常重要,请在其用户表中添加一列以指定时间戳,并在每次加载页面时更新该字段。 如果该列已过时不到一分钟,则可以认为它们是活动的。

您还可以做一件事(在线聊天室经常使用它来维护活动的“聊天”列表),以给定的时间间隔(使用AJAX)轮询页面,即使他们没有刷新页面,您仍然知道他们在那里。 如果ajax请求没有在指定的时间间隔内到达,则表明用户已经离开或关闭了浏览器。

我使用的一种方法是编写自定义会话处理程序-php.net上有很多示例。 一旦会话数据存储在SQL中,您可以做更多的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM