我现在用struts编写一个论坛,但是在编写过程中遇到了如下问题:
用户状态的确定(是上线还是下线)
我现在是设置了一个按钮点击后就将数据库中对应的字段变成0(0表示下线,1表示上线) 但是如果用户是关闭阅览器就不能确定成功了,原想 设置 在session中一个值,然后定时进行检查,但是这种方法时间无法确定。如果用户刚下线,又想上线。还有用户换阅览器登录怎么办(ie换到火狐)
问题补充
定时确定的时间不好确定呀?
问题补充
我主要是说,如果js请求时间设定一个值,然而用户又在这个时间段内重新登录。这不就不出现问题了,用户登录不上。因为数据库保留的在线标志。
问题补充
关闭浏览器了 那没辙 只能等当前session销毁时做监听
换浏览器就等于是新的客户端会话了 跟你开始的登陆 注销都不相关
这是问题,那么解决方案了。
问题补充
然后再做一个session监听,销毁时将登陆信息删除。
设置session 30分钟失效。这样用户在关了浏览器也在半个小时候就会session销毁。
至于你说的两个浏览器同时登陆 ,我觉得这种东西 记录在线情况的是否得考虑,一个用户只能在一个地方登陆,例如QQ 第二个用户登录就会被挤掉。
如果保证单用户登录的话,那么同时打开2个浏览器登录将后登录的用户存入,把前一个踢掉就OK 了
注意了:浏览器都有一个毛病 火狐最明显,就是在一个talbe也中同时开2个也没访问服务器的话,这时候只有一个session。这里不是我们自己的问题。
这个方法可行,那么用户踢出的方式是什么。