首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

web项目 怎么判断当前在线的用户数

2012-08-31 
web项目 如何判断当前在线的用户数老师说 用session当监听到 session创建的时候 就将在线用户数加一当监听

web项目 如何判断当前在线的用户数
老师说 用session 
当监听到 session创建的时候 就将在线用户数加一
当监听到 session销毁的时候 就将在线用户数减一
监听 session创建 容易
但是 监听 session 销毁 我就遇到了问题
session的destroy方法不会在浏览器关闭的时候自动执行 
老师说设置超时 让session自动销毁  
可是这样 就和 我的登录产生了矛盾 不能确保用户登陆后一直处于登陆状态

各位 有什么好的方法没 帮我出出主意吧

[解决办法]
写入数据库吧。当session调用destory方法的时候再删除数据库中的值,同时还可以防止用户重复登录
[解决办法]
可以登录的用户给个状态..session关闭.就改掉状态.登录的话也改变.
[解决办法]
你这个需求,很难圆满实现,建议还是降低所谓“在线”的定义吧。

因为浏览器关闭这样的动作,无法绝对可靠的通知给服务器端,即便你用onbeforeunload这样的事件去通知服务器销毁session。

变通的做法有几种,但其实都不是很好:
1、减少session有效时间,比如设置为5min就超时,然后在页面中设置interval,每隔1分钟就去请求下服务器的一个极小页面(在该页面中禁止客户端缓存);
2、使用长连接,也就是页面中使用一个看不见的IFrame跟服务器端保持长连接。


总的来说浪费资源且意义不大,没必要纠结于这种在线人数统计的需求。

热点排行