关于监听的一个小问题!你懂不?进来看看。。。
对于用户登录,我想做像做到不能重复登录,网上说放在session中,那两台机器呢?还有的说放在application中,那访问的人数达到一定的数量呢?岂不悲剧了!嗯,我想在数据库里弄一个字段,online,0代表下线,1代表上线,但如果用户没有按照流程正常退出,而是直接关掉浏览器或是断电、死机等意外发生,怎么实现一个监听对其数据库中的数据进行更改。
望各位大神各点实际的提示!由衷感谢!
[解决办法]
对于用户登录,我想做像做到不能重复登录,网上说放在session中,那两台机器呢?
用session好,对于单纯的用户登录,不可能用到application.对于你所说的两台机器,每个用户的session都不同,所以不用担心,如果相同,可以向qq那样的实现操作一样了
[解决办法]
如果一定要获得登录退出状态,就需要除了登录退出来确认在线下线外,还得有一个 在线确认+超时认定下线 机制
如果没有在线确认(比如心跳消息等),就无法确认是否没有主动退出,结合了超时认定下线就可以完善退出机制。
具体的可以查一下:
2、session何时被删除
综合前面的讨论,session在下列情况下被删除a.程序调用HttpSession.invalidate();或b.距离上一次收到客户端发送的session id时间间隔超过了session的超时设置;或c.服务器进程被停止(非持久session)
http://beyond99.blog.51cto.com/1469451/543282
[解决办法]
写一个方法,在用户登陆之后,每1分钟执行一次(定时执行)。
方法的内容就是传递用户标识。。
如果超过5分钟未接收到用户标识,标记改为下线
[解决办法]