有没有办法获得用户会话的持续时间?
如果用户登录,我可以保存初始时间。如果他退出,我可以得到最后的时间并计算会话的持续时间。
如果用户未注销并且会话刚过期,该怎么办?有没有办法知道是否/何时发生?
答案 0 :(得分:2)
无法知道会话是否仍处于活动状态,因此您可以做的最好的事情是将SESSION_START_TIME
保存在您的数据库上,并在每个请求日志上保存LAST_REQUEST_TIME
。
通过这种方式,你知道什么时候开始,可能"可能"会议结束。
通过使用LAST_REQUEST_TIME<5minutes
检查所有会话,您还可以知道现在有多少活动会话......所以这不是一个糟糕的解决方案。
答案 1 :(得分:0)
不,不是真的。 HTTP是会话较少的。真正想要更精细的活跃用户想法的人会经常使用某种心跳技术,创建持久连接或使用轮询,使用ajax或flash影片或websockets来模拟它。
PHP会话实际上更像是将一些临时服务器端存储与特定客户端/浏览器实例相关联的机制,尽管有些人可能会读到该名称。