老师说 用session
当监听到 session创建的时候 就将在线用户数加一
当监听到 session销毁的时候 就将在线用户数减一
监听 session创建 容易
但是 监听 session 销毁 我就遇到了问题
session的destroy方法不会在浏览器关闭的时候自动执行
老师说设置超时 让session自动销毁
可是这样 就和 我的登录产生了矛盾 不能确保用户登陆后一直处于登陆状态各位 有什么好的方法没 帮我出出主意吧
当监听到 session创建的时候 就将在线用户数加一
当监听到 session销毁的时候 就将在线用户数减一
监听 session创建 容易
但是 监听 session 销毁 我就遇到了问题
session的destroy方法不会在浏览器关闭的时候自动执行
老师说设置超时 让session自动销毁
可是这样 就和 我的登录产生了矛盾 不能确保用户登陆后一直处于登陆状态各位 有什么好的方法没 帮我出出主意吧
不管是把人数存在application中还是存在数据库中 都不能解决我的问题我的意思是 我登陆后 session中保存了我的信息对不对 接下去 只要我不管浏览器 我就要一直能用session中的信息 因为 比如我登陆后 我评论了个文章 这个操作是必须登陆的 现在我登陆了 可以提交评论 只要我不管浏览器 我是不是应该一直可以评论 但是如果我把session设置timeout了 一段时间后就不能在评论了 还得重登 那么我为什么要设置session成timeout自动销毁呢? 我不是要记录当前在线人数吗 可是监听上线好弄
监听下线不好弄啊 用户一般都是登陆后 用了一会儿 直接关浏览器了 session不会自动调用destroy
所以我没招了 给位给力啊 帮我想想吧 (."".)
就只能设置timeout了 还是不行
1、减少session有效时间,比如设置为5min就超时,然后在页面中设置interval,每隔1分钟就去请求下服务器的一个极小页面(在该页面中禁止客户端缓存);
2、使用长连接,也就是页面中使用一个看不见的IFrame跟服务器端保持长连接。
总的来说浪费资源且意义不大,没必要纠结于这种在线人数统计的需求。