您的位置:首页 > 其它

一个比较精确的“在线用户列表”统计功能

2007-01-11 21:47 501 查看
原帖:http://community.csdn.net/Expert/topic/3835/3835032.xml?temp=.1909601
感谢:Afritxia (能活不易)

当用户访问网站时,会为他分配一个SessionID。令用户的IP地址和用户名称建立一个一一对应的关系。如果用户开启了新的窗口,则检查用户的IP地址或用户名是否已经在OnlineUsersHash中出现过?如果出现过,就让新的SessionID指向现有的IP地址。而当一个Session结束时,则将该SessionID从OnlineUsers_SessionIPHash中移除。判断是否还有其他SessionID指向这个IP地址,如果没有,那么从在线用户列表中移除用户名称。客户端的情况相当复杂,必须要考虑周全。下面则是新的算法的代码:

// 在Global.asax.cs 文件中
//
// 在线用户列表主键名
public const string KEY_ONLINEUSERS="OnlineUsers";
// 在线用户列表 Session 表主键名
public const string KEY_ONLINEUSERS_SESSIONIP="OnlineUsers_SessionIP";

protected void Application_Start(Object sender, EventArgs e)

protected void Session_Start(Object sender, EventArgs e)

protected void Session_End(Object sender, EventArgs e)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: