积极答复者
请问怎么实现像webqq那样实现同一个账号登录时,后登录账号挤掉前面的账号

问题
答案
全部回复
-
这个问题可以这样做
维护一个在线用户表这个表可以是在数据库中或者 缓存/分布式缓存
当用户/密码检查匹配成功的时候为在线用户表添加一条记录,这条记录里面产生插入一个唯一的会话id和用户名对应的用户id。当然还可以有另外一些附加信息比如登录的ip等
然后再将刚刚产生的会话id返回给客户端 比如用cookie让客户端维持起来当然最好加一下密
如果还有另外的用户用这个用户名来登录 并且他的用户密码都填写正确的时候那么产生一个新的会话id 用于去替换在线表中同一用户id的会话id
当然服务器端判断当前用户的登录状态是要靠检查客户端的会话id与在线用户表的数据来实现的
- 已编辑 comma 2010年4月26日 12:16 有错别字