在线用户解决方案
在线用户模块(OnlineUserBlock)的简要介绍
- 主要功能特点
- 即时有效地提供一份在线用户列表
一般来说,用户离开系统的方式有四种:主动注销、会话超时、直接关闭浏览器、在当前窗口导航到其他页面, 对于前两种(正常退出),我们很容易便可将该用户从在线列表中清除;而后两种(非正常退出),由于无法精确捕获退出事件的精确时间,只能等到会话超时后才能将该用户清除出在线列表。 假设我们设置会话超时时间为60分钟,则必须在1小时后才能将非正常退出的用户从在线列表中清除,而在实际应用中,有相当一大批的用户都习惯于非正常退出,所以采用普通方式维护的在线用户列表的时效性可想而知。 本模块是将这种尴尬降至最低的一个尝试。
- 在线用户包含会员、访客两种
实际应用中,站点应该还有许多访客,严格来说他们也算用户的一种(匿名用户),因而本模块的在线用户包含会员(普通用户)、访客(匿名用户)两种。
- 控制会员帐号不能在多处同时登录
很多web系统(尤其是收费系统)非常厌恶多人共享同一帐号,本模块设置了一个控制开关,开启后会员帐号将禁止在多处同时登录(要是俩人一个白天一个晚上分时段共享也是没有办法的),先登录的将被后登录的挤掉。
- 即时有效地提供一份在线用户列表
- 其他说明
本模块使用C#语言基于.NET Framework2.0 开发,具体开发工具为Visual Studio 2005 团队版 sp1。
由于代码有可能参照大家的意见和建议进行不定期调整,建议大家到本演示站点下载相关源码。
最新源码发布时间:2007-10-30
*注:演示站点是web application项目,vs2005必须打上sp1补丁才行:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=bb4a75ab-e2d4-4c96-b39d-37baf6b5b1dc