yingzhi9 2012-04-26 14:35
浏览 231
已采纳

用户状态确定问题

我现在用struts编写一个论坛,但是在编写过程中遇到了如下问题:
  用户状态的确定(是上线还是下线)
  我现在是设置了一个按钮点击后就将数据库中对应的字段变成0(0表示下线,1表示上线)  但是如果用户是关闭阅览器就不能确定成功了,原想 设置 在session中一个值,然后定时进行检查,但是这种方法时间无法确定。如果用户刚下线,又想上线。还有用户换阅览器登录怎么办(ie换到火狐)
问题补充
定时确定的时间不好确定呀?

问题补充
我主要是说,如果js请求时间设定一个值,然而用户又在这个时间段内重新登录。这不就不出现问题了,用户登录不上。因为数据库保留的在线标志。
问题补充

qyhdt 写道
这种问题 解决方法很多的 登陆了的用户 修改状态在线 退出了修改状态离线

关闭浏览器了 那没辙 只能等当前session销毁时做监听

换浏览器就等于是新的客户端会话了 跟你开始的登陆 注销都不相关


这是问题,那么解决方案了。
问题补充
wms6891 写道
可以做一个session监听,session创建的时候就将登陆信息存入在线表中,如果用户是正常退出的,如:点击注销,或者是logout,后退就将session销毁,
然后再做一个session监听,销毁时将登陆信息删除。
设置session 30分钟失效。这样用户在关了浏览器也在半个小时候就会session销毁。
至于你说的两个浏览器同时登陆 ,我觉得这种东西 记录在线情况的是否得考虑,一个用户只能在一个地方登陆,例如QQ 第二个用户登录就会被挤掉。
如果保证单用户登录的话,那么同时打开2个浏览器登录将后登录的用户存入,把前一个踢掉就OK 了


注意了:浏览器都有一个毛病 火狐最明显,就是在一个talbe也中同时开2个也没访问服务器的话,这时候只有一个session。这里不是我们自己的问题。

这个方法可行,那么用户踢出的方式是什么。
  • 写回答

5条回答

  • wms6891 2012-04-26 14:35
    关注

    可以做一个session监听,session创建的时候就将登陆信息存入在线表中,如果用户是正常退出的,如:点击注销,或者是logout,后退就将session销毁,
    然后再做一个session监听,销毁时将登陆信息删除。
    设置session 30分钟失效。这样用户在关了浏览器也在半个小时候就会session销毁。
    至于你说的两个浏览器同时登陆 ,我觉得这种东西 记录在线情况的是否得考虑,一个用户只能在一个地方登陆,例如QQ 第二个用户登录就会被挤掉。
    如果保证单用户登录的话,那么同时打开2个浏览器登录将后登录的用户存入,把前一个踢掉就OK 了

    注意了:浏览器都有一个毛病 火狐最明显,就是在一个talbe也中同时开2个也没访问服务器的话,这时候只有一个session。这里不是我们自己的问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试