none
请问怎么实现像webqq那样实现同一个账号登录时,后登录账号挤掉前面的账号 RRS feed

答案

全部回复

  • 登录的时候在设置一个标记和登录的ip或者其他标记,在线的时候不停地去检查这个标记
    【孟子E章】
    2010年4月26日 1:03
    版主
  • 孟说的对,记录标示用application[]
    2010年4月26日 2:15
  • 这样做,会不会对服务器照成负担,你想想webQQ那么多人登陆,我们不停从数据库中读取知识是不是会对服务器照成负担呢?

    2010年4月26日 4:19
  • 这个问题可以这样做

    维护一个在线用户表这个表可以是在数据库中或者 缓存/分布式缓存

    当用户/密码检查匹配成功的时候为在线用户表添加一条记录,这条记录里面产生插入一个唯一的会话id和用户名对应的用户id。当然还可以有另外一些附加信息比如登录的ip等

    然后再将刚刚产生的会话id返回给客户端 比如用cookie让客户端维持起来当然最好加一下密

    如果还有另外的用户用这个用户名来登录 并且他的用户密码都填写正确的时候那么产生一个新的会话id 用于去替换在线表中同一用户id的会话id

    当然服务器端判断当前用户的登录状态是要靠检查客户端的会话id与在线用户表的数据来实现的

     

    • 已编辑 comma 2010年4月26日 12:16 有错别字
    2010年4月26日 12:14