关于判断用户是否在线的问题!!!
以前一直在听说如何判断用户是否在线这个话题,一直没得要领,今天特意向大家请教下!!谢谢各位!!
------解决方案--------------------把session记录到数据库,同时标示出用户的id号,判断用户是否在线就看这个id号对应的session信息是否过期。不知道我说的对不对,欢迎楼下各位大神拍砖。
------解决方案--------------------主要是判定最后活动时间,设置一个较短的默认在线时间,如果在这个时间内没有活动记录则认为不在线;相反则认为在线。
------解决方案--------------------1、为什么要判断用户是否在线?
既然用户不在线,那么他就不会向你发出请求。
除非你有显示在线人数的需求
2、什么时候判断用户是否在线?
当你需要显示在线人数时,自然是至少有一个用户发出了请求
只在响应该请求时统计在线人数即可
如果没有任何人访问你的网站,即使统计了又有什么用?
3、如何判断用户在线?
无论是否注册用户,只需统计有效的 session 的个数就可以了
如果你觉得默认的 session 失效期 1440 秒太长了,你可以按你的需要调整
------解决方案--------------------记录用户最后访问时间
检查用户最后访问时间与当前时间的间隔,若超出约定的范围,则视为不在线
判断用户甲是否在线的工作是在用户乙活动期间进行的
判断在服务器端独立进行,与客户端无关
------解决方案--------------------你可以使用一个内存表来更新用户的最后操作时间,然后使用Cron来定时执行清理用户的操作,这样表里的就是最近在线的用户。