java系统如何获取当前登录用户的数量

liu_baogui 2010-12-27 01:35:07
我用 struts + spring + ibatis 做了一个系统,如何在这个系统中控制登录用户的数量?
网上查了一些资料,大部分是通过监听session的数量,来计算当前连接数,但是,当用户直接关闭浏览器,或者其他没有通过正常途径退出,这个session还在存活期,就不能实时统计这个数量,有没有更好的方法做到实时统计登录用户?
...全文
919 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
wojiushiniba1230 2012-08-12
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 的回复:]
fdsfsdfsdfhttp://
[/Quote]看看效果
wojiushiniba1230 2012-08-12
  • 打赏
  • 举报
回复
wojiushiniba1230 2012-08-12
  • 打赏
  • 举报
回复
fdsfsdfsdfhttp://
liu_baogui 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 lhq062003 的回复:]
因为统计操作不是无时无刻在做,所以可以在统计的时候遍历一次SESSION,对每个客户端做一次
“心跳检测”,这样就能统计出来真正的在线用户了
[/Quote]
java web项目适合用 心跳测试 吗?
liu_baogui 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 gaoch_2000 的回复:]
在客户端用js程序1秒钟连接服务器一次。。。。。。
[/Quote]
tomcat说:压力好大
Think Nothing 2010-12-27
  • 打赏
  • 举报
回复
因为统计操作不是无时无刻在做,所以可以在统计的时候遍历一次SESSION,对每个客户端做一次
“心跳检测”,这样就能统计出来真正的在线用户了
鹏_子 2010-12-27
  • 打赏
  • 举报
回复
application针对多个用户,多用户记录网站登录人数
session针对一个用户,多用户记录一个登陆用户


学习。。。。
Spancer 2010-12-27
  • 打赏
  • 举报
回复
利用application对象吧。
locathyve 2010-12-27
  • 打赏
  • 举报
回复
过来学习一下。。。。。。。。。。
hh79200 2010-12-27
  • 打赏
  • 举报
回复
我竟然都不懂
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 gaoch_2000 的回复:]

在客户端用js程序1秒钟连接服务器一次。。。。。。
[/Quote]

这样做跟自我攻击服务器没啥区别,如果有 10000 个用户那服务器估计就得崩掉,C10K 问题,呵呵。
  • 打赏
  • 举报
回复
你只能统计到个大概的,精确地是做不了的!

比如说用户关浏览器、直接关机,或者直接断电!这些能监测到么?
HF2905330 2010-12-27
  • 打赏
  • 举报
回复
楼上的够狠
gaoch_2000 2010-12-27
  • 打赏
  • 举报
回复
在客户端用js程序1秒钟连接服务器一次。。。。。。
xchh1220 2010-12-27
  • 打赏
  • 举报
回复
实时数据并不一定非得完全准确实时,非正常退出的只能当他还在线直到Session失效
循环Ajax发请求是不对的,这样只要不关页面是不是就一直不超时了
liu_baogui 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zghbsyqyb 的回复:]
你可以在页面中放个类似与定时器的东西啊,用ajax每个5到10秒的样子请求一下后台,后台自然要做监听,如果隔几十秒还没收到某个用户用ajax提交过来的用户ID,就当该用户已经下线。

不过这种方式每个页面中都要放点东西,如果用的是frame的就好了,只需在一个页面中弄个ajax定时循环的跑。
[/Quote]
这样会不会对服务器造成压力
  • 打赏
  • 举报
回复
你可以在页面中放个类似与定时器的东西啊,用ajax每个5到10秒的样子请求一下后台,后台自然要做监听,如果隔几十秒还没收到某个用户用ajax提交过来的用户ID,就当该用户已经下线。

不过这种方式每个页面中都要放点东西,如果用的是frame的就好了,只需在一个页面中弄个ajax定时循环的跑。
liu_baogui 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tang5324110 的回复:]
你可以吧session过期时间设置的短点!比如一分钟,那样用户在非正常手段关掉网站,1分钟之后就知道了
[/Quote]
这样会影响到其他耗时操作,如果一个操作需要一分钟以上,这样设置就会很不方便。
玉女 2010-12-27
  • 打赏
  • 举报
回复
你可以吧session过期时间设置的短点!比如一分钟,那样用户在非正常手段关掉网站,1分钟之后就知道了
xuanyuanyilu 2010-12-27
  • 打赏
  • 举报
回复
我觉得这个就是用户的问题了,
还是应该把他算在在线状态,因为他再次打开网站还是在线的,

当然仅供参考

81,122

社区成员

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

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