向绝顶高手求救!精确统计在线人数!!!SOS!SOS!SOS!SOS!SOS!SOS!

cxmvip 2004-12-23 12:04:44
常规做法是判断Session超时.但是当一个用户关闭IE时,对应的SESSION不会立即超时,从而影响统计精度.
...全文
154 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
形印声传 2004-12-23
是啊,楼上说的有道理
不过曾经有人说过当页面关闭时,调用一个validateSession的方法,将session清空,但是这样的话,将要对每个页面进行控制,相当麻烦...
回复
jFresH_MaN 2004-12-23
楼上的说得有道理,但是超时时间太短肯定会影响用户的操作
所以必须考虑一个折中的时间
回复
虎叔 2004-12-23
可以减少timeout的时间。
其他没有办法。HTTP协议就是非面向连接的。
回复
cxmvip 2004-12-23
谢谢,如果哪位绝顶高手有什么独门秘籍,欢迎与我联系.chen_xiao_min@sohu.com
回复
cxmvip 2004-12-23
谢谢各位大侠指点.笨鸟认为主要是因为HTTP不是面向非连接的.我利用这个,主要是为了解决一个帐号一次只能有一个用户在用的问题,不能有多个在用.如果无法知道用户关闭IE,那么系统就无法实现.
回复
bluemeteor 2004-12-23
没有办法精确统计的....有的用户客户端打开很多个IE...同样无法精确统计..

这个目前是无法通过程序来解决的...除非重新更改协议
回复
jFresH_MaN 2004-12-23
呵呵,真的没办法精确计算的
我认为只需要考虑超时和注销登陆的情况,这样的结果已经差不多了

再说你的系统如果在线人数很多的话,这样的结果已经满足一定的需要了
如果再线人数不多的话,你的统计也就没有什么意义了,因为本来人就就不不多再加上不准确,那谁还要看你的统计呢?
回复
虎叔 2004-12-23
其实楼主没有必要搞的这么精确,因为事实很简单,浏览器不是你能控制的了的。

折中方案是你自己整个Applet嵌在页面,向服务端发心跳。
回复
yulchina 2004-12-23
validateSession方法是比较常用的方法。在以前的帖子里可以搜索到相关的文章。
回复
虎叔 2004-12-23
你们难道没有考虑如果只是用户直接把网线拔了也?掉线的情况很多的,不要以为屏蔽关闭按钮就可以了。呵呵!!!
回复
xinlcao 2004-12-23
以前也考虑过这个问题,但是最终的结果是做不到。
你可以有这种得办法,但是都不可能做到非常准确。
1、进入主页面后,谈出一个没有关闭的窗口,自己在页面上做一个关闭按钮,点击后调用一个注销页面。
2、每个页面用户在调用时将session中的一个变量加1,退出或关闭页面后将这个变量减1,如果变量为0,则用户关闭了。(需要动每个页面,麻烦!但是可以通过拦截器,能省一些)
3、使用一个框架,使用一个单独的页面记录用户登录、退出的动作,然后将这个页面放在上面或左面设他的高度或宽度为0,这样用户感觉不到,浏览时就是框架内的跳转,关闭时截获就可以了。
不知道我想的行不行,也请高手指正。
回复
WorldMobile 2004-12-23
减少timeout的时间,找个你认为合适的timeout时间即可
回复
jFresH_MaN 2004-12-23
屏蔽关闭按钮.
-----
这个怎么搞啊?要是可以,肯定精确了!
回复
lijunjiejava 2004-12-23
什么系统要求这么精确.很精确的应该做不到.
或者让他们点注销来退出.屏蔽关闭按钮.
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-12-23 12:04
社区公告
暂无公告