首页 新闻 会员 周边 捐助

在线人数统计

0
悬赏园豆:20 [已关闭问题]

我的sesssion 模式为StateServer 所以不执行 Session_End(object sender, EventArgs e) 事件。所以只增加在线用户不减。

 

问题补充: 我用的就是这个方法 Session_Start(.......) { Application["count"]=Application["count"]+1 } Session_End(......) { ////你可以不处理,然后用户只会增,不会减。 } 可是我的session mode="stateserver" 所以无法执行Session_End(......) 事件 只有增加用户无法减去用户,所以统计在线人数不准确。我只统计在线人数;登陆不登陆都统计,只要打开网页就统计
freexiaoyu的主页 freexiaoyu | 初学一级 | 园豆:182
提问于:2009-06-01 10:53
< >
分享
其他回答(4)
0

想问什么?

Jaryleely | 园豆:367 (菜鸟二级) | 2009-06-01 10:55
0

然后呢???

你想问什么呢???????

潶苩啈冨 | 园豆:210 (菜鸟二级) | 2009-06-01 11:54
0

改为InProc 模式?

好像这种方法做出来的效果不怎么好

等高手出来

stargate | 园豆:210 (菜鸟二级) | 2009-06-01 15:03
0

你可以把登录用户的信息保存在数据表里,当一个用户登录后,定时更新登录信息表中的时间字段,这样如果这个用户退出了,就算不是正规退出,直接关闭网页了,那这个时间字段就不会得到更新。你可以判断把时间间隔长的用户登录信息删除掉。这样也可以来统计在线人数

李.net | 园豆:730 (小虾三级) | 2009-06-01 15:07
0

InProc 模式 不可以,存在超时的问题,数据不太准确。

在stateserver模式下,你可以定义一个静态的全局变量,aplication["online"],在登录时为application["online"]自动加一,在系统的主页面,要捕捉ie关闭或者 退出系统的动作,直接application["online"]减一。

如果在线人数统计需要详细的信息,例如谁在线,可以定义一个静态的全局变量list,存入已经登录人的客户id,并且设置固定时间定期检查session会话数量是否和list中数量一致,不一致用session会话更新这个list。

邢少 | 园豆:10926 (专家六级) | 2009-06-01 15:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册