关于在线用户统计的另类方法,欢迎大侠们围观吐口水,独家秘方,超级简单,不信请看——
关于在线用户的统计,我在网上查了下,大师们一致认为随便用什么天方法地方法,绝对不会精确,最多是方法得当,比较精确,方法不当,比较粗略,如此而已。关于统计方法,有人说用PING的,我不知何为PING;
有人说用定时器的,我拷贝几段定时器代码,没测试成功。我自己的独家秘方,很简单,我觉得应该可以用,不过稍微粗略一些,呵呵,各位看官不防看完我的以下陈述再吐口水,呵呵——
思路步骤:
第一步:用现存的登录表,也就是登录用的表,记录登录次数、最后登录时间等信息的这个表,给这个表加一个字段,暂且取字段名为zaixianchaoshi,取在线超时之意。
第二步:用户登录时,登录成功,建立session登录状态,并更新zaixianchaoshi的时间为登录时间加上8分钟。
第三步:新建一个类方法,在该方法中,如果登录状态为true,则更新zaixianchaoshi的时间为调用该方法的时间加上8分钟。
第四步:在每个应用页面(即.aspx页面),在if(!Page.IsPostBack)中调用第三步建立的类方法。
补充:如果用户主动点击退出,即主动注销登录状态,则马上更新zaixianchaoshi的时间为退出的时间。这样做能实现的功能有二,其一可以统计出有多少在线用户,select count(id) from 登录表 where zaixianchaoshi>当前时间,这样即可。
其二:可以输出在线用户到DataList显示。我这样设计的理由是:反正用什么方法都不会精确,用我这个方法自然也不精确,用户一般不会在一个页面停留超过8分钟,即使超过8分钟,登录状态还是为true,因为默认session时效为20分钟,在20分钟内,用户刷新或打开别的页面,再次调用第三步的类方法,用户立即又在线了。我的困惑:每个页面打开时,第一次加载或刷新,都要调用一次第三步中的类方法(当然点击Button类按钮与服务器交互时不会调用),不知这样给服务器造成的压力大不大,如果开销大的话,只能寻求别的方法了。各位大虾看看,我这方法可行否,欢迎探讨和批评指正,小生在此谢过,3Q。
关于在线用户的统计,我在网上查了下,大师们一致认为随便用什么天方法地方法,绝对不会精确,最多是方法得当,比较精确,方法不当,比较粗略,如此而已。关于统计方法,有人说用PING的,我不知何为PING;
有人说用定时器的,我拷贝几段定时器代码,没测试成功。我自己的独家秘方,很简单,我觉得应该可以用,不过稍微粗略一些,呵呵,各位看官不防看完我的以下陈述再吐口水,呵呵——
思路步骤:
第一步:用现存的登录表,也就是登录用的表,记录登录次数、最后登录时间等信息的这个表,给这个表加一个字段,暂且取字段名为zaixianchaoshi,取在线超时之意。
第二步:用户登录时,登录成功,建立session登录状态,并更新zaixianchaoshi的时间为登录时间加上8分钟。
第三步:新建一个类方法,在该方法中,如果登录状态为true,则更新zaixianchaoshi的时间为调用该方法的时间加上8分钟。
第四步:在每个应用页面(即.aspx页面),在if(!Page.IsPostBack)中调用第三步建立的类方法。
补充:如果用户主动点击退出,即主动注销登录状态,则马上更新zaixianchaoshi的时间为退出的时间。这样做能实现的功能有二,其一可以统计出有多少在线用户,select count(id) from 登录表 where zaixianchaoshi>当前时间,这样即可。
其二:可以输出在线用户到DataList显示。我这样设计的理由是:反正用什么方法都不会精确,用我这个方法自然也不精确,用户一般不会在一个页面停留超过8分钟,即使超过8分钟,登录状态还是为true,因为默认session时效为20分钟,在20分钟内,用户刷新或打开别的页面,再次调用第三步的类方法,用户立即又在线了。我的困惑:每个页面打开时,第一次加载或刷新,都要调用一次第三步中的类方法(当然点击Button类按钮与服务器交互时不会调用),不知这样给服务器造成的压力大不大,如果开销大的话,只能寻求别的方法了。各位大虾看看,我这方法可行否,欢迎探讨和批评指正,小生在此谢过,3Q。
1、用户超时不用删除呀,这个表是实体表呀,存在于SQL数据库中,本身就有一个字段是用来记录在线超时的,若在线超时字段的时间大于当前时间,则在线,反之,则不在线。
2、同一账号异地登录,这个很好解决呀,查该账号的在线超时字段的时间,若大于当前时间,则拒绝登录,输出显示“该账号已经登录,请勿重复登录”。
如果你说的是asp.net在服务器端访问自己,那么我告诉你:任何用户都永远在线!因为就是自己访问自己嘛!而lz说的是asp.net页面输出到浏览器端了。这个时候,哪一个浏览器会自动编出WCF程序来访问你的服务器?!