大家都懂,WEB IE 如果不正常点退出,  直接关窗口, 或者停电, 都会造成该用户不能真正的在线。通过简单的在数据库里设个字段 0 ,1 来确定用户是否在线, 显然不适合了。
现在想寻求解决一个帐同时多人登录的问题。   希望大家一起给点建议意见吧主要是从, 服务器的资源节省,  数据库的反复读取开销少 去考虑

解决方案 »

  1.   

    由于http协议的局限性,没有办法解决客户端异常退出的问题。一般利用服务器session过期来退出登录状态。防止多人登录的做法是用cookie标识客户端,后面登录,踢掉前面的。
      

  2.   

    session 是个人的可以用cache + cookie,cache是公共的比如 cookie里 随机字符若干cache 用户名 value的值是cookie, 那么  客户端有cookie 并且等于value的 为最后登录的用户调整cache机制 可以设置超时时间,通过最后1次访问cache的时间 比如  离最后1次访问超过30分钟,cache失效
      

  3.   

    在用户表那儿添加多一个INT列,这个专门放随机数,每登陆一次,随机数就变化一次,并将随机数放在cookies或seeion中,每每读取和数据库的作对比,如果发现不对,就说明,别人己在另一个地方登陆了,这时就弹出“己在另一地方登陆”,然后关闭窗口,这样就行了
      

  4.   

    一般是用cookie和session来记录用户是不是在线
      

  5.   

    数据库其实也可以用的。加一个“最后更新时间”的字段,缺省值是getdate(),然后在检查用户是否在线的逻辑里加上一句判断,如果最后更新时间离当前时间1小时以上,则视同下线。
    session当然也可以,不过session失效的问题比较麻烦。