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

cxmvip 2004-12-23 12:04:44
常规做法是判断Session超时.但是当一个用户关闭IE时,对应的SESSION不会立即超时,从而影响统计精度.
...全文
182 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
形印声传 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
  • 打赏
  • 举报
回复
什么系统要求这么精确.很精确的应该做不到.
或者让他们点注销来退出.屏蔽关闭按钮.

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧