如何使用PHP实现“谁在线”功能?当然,它将涉及使用时间戳,并且在查看phpBB的会话表之后,可能涉及将最新访问存储在数据库中。
这是一种有效的方法,还是有更好的方法来实现这个想法?
编辑:我不小心制作了这个社区维基,因为我当时还是Stack Overflow的新手。
答案 0 :(得分:7)
使用数据库跟踪每个登录的人几乎是实现此目的的唯一方法。
我要做的是,在表中或当有人登录时插入带有用户信息和时间戳的行,并在每次有该用户的活动时更新时间戳。我假设所有在过去5分钟内有活动的用户目前都在线。
答案 1 :(得分:4)
根据您实施(以及实施)会话的方式,您可以使用相同的存储媒体来获取活动用户的数量。例如,如果使用基于文件的会话模型,只需扫描包含会话文件的目录并返回会话文件数。如果使用数据库存储会话数据,请返回会话表中的行数。当然,假设您对会话的超时值感到满意(即,如果您的会话超时为30分钟,您将在过去30分钟内获得活动用户列表)。
答案 2 :(得分:0)
我想这样做:
当用户登录时,他的用户ID和时间戳将被插入到表中。 然后每隔5分钟,我将通过ajax调用php脚本来检查用户是否已登录,如果是,则更新表中的时间戳。
如果用户未登录,只需删除他的记录。
答案 3 :(得分:0)
有很多方法可以实现这一点。
您只需轮询即可实现此目的。
按特定时间间隔检查客户端并计算回复的客户端数量。
该值可用作在线用户数。
我认为更好的方法是使用推送技术,而不是每x秒或x分钟检查一次在线人员。
它只是让服务器知道人们何时按事件进入和离开。
因此,当事件来自客户端时,服务器只会增加和减少在线用户计数变量。
答案 4 :(得分:0)
我认为你可以简单地在php中实现它
创建表用户包括,用户名,密码和状态(1,0)