我们家网站sessionmode是StateServer,不会进入Session_end方法,现在客户要求做一个统计在线人数的功能,该怎么做??
建立一个数据库表,记录sessionid和开始时间,session_start的时候表中写入sessionid和开始时间,并且执行下删除语句(开始时间大于30分钟的记录,这个间隔自己定了),然后更新下application计数。
用户每次访问页面的时候更新sessionid对应的开始时间,防止误判断(>30分钟)
通过数据库控制,效率不是很高~
客户端保持AJAX心跳,指定时间内和服务器通信一次 保持在线
这样即可统计真正的在线人数
无论什么方法,都只能大致统计在线人数,因为http是无状态的。你可以增加一个用户最后活动时间的字段,在每次页面请求的时候刷新它,在用户注销的时候清空它。而将问题转化为,查找最后活动时间在多少分钟之内的用户数。
数据库或者文件记录一下吧.