如何查找我的网页上的活动会话数

时间:2011-10-19 04:02:07

标签: php

我需要查看在我的网页上活动的所有会话。经过一些搜索,我遇到了一个函数session_status(),它包含在php 5.4中,我想这会告诉活动会话。但到目前为止,我无法弄清楚如何使用这个功能。任何人都可以通过示例告诉如何使用此功能。我在我的系统上安装了php 5.4,所以这不是问题。

4 个答案:

答案 0 :(得分:1)

据我所知,没有自动方法可以做到这一点。一种简单的方法是在你的tmp目录中查找正在写入PHP会话的数量并计算有多少文件(假设会话存储在文件中)。

答案 1 :(得分:0)

关键是,无法看到所有活动的会话,您无法判断会话是否处于活动状态。如果用户关闭页面而未执行任何操作(如注销),则会话信息(会话文件或其他存储)仍保留在服务器中并等待会话 GC 以清除它。

答案 2 :(得分:0)

PHP.net -> Session_Status这个Funktion在PHP中不存在,必须是这个Person的自制功能。我认为这不可能超出其他程序,如shell脚本或类似的东西。

上面的链接,看起来像php5.4扩展,你必须安装manuell。

答案 3 :(得分:0)

这是一种痛苦,但它是可能的。除了将会话文件计为endyourif所提到的,您可以让所有活动会话每隔30秒左右更新一次数据库表中的IP地址或用户ID以及时间戳(通过ajax)。然后,您可以随时查询前几秒内有多少用户处于活动状态。

这可能会比平常更快地耗尽资源,所以如果你获得了大量的流量,请小心。使用内存表可能会有所帮助。此外,您还需要经常运行一个cron作业来清理不再需要的条目,例如超过15分钟的条目。