V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
fanghui
V2EX  ›  问与答

用户非正常退出,怎么判定?

  •  
  •   fanghui · 2013-08-01 11:42:52 +08:00 · 3866 次点击
    这是一个创建于 4131 天前的主题,其中的信息可能已经有所发展或是发生改变。
    系统实现的用户功能是一个账号不能重复登录,如果它已经登录,在其它窗口不允许重复登录。用户如果非正常退出,他只能到明天才可登录。这种设计,需要判定用户的多种非正常退出。
    想到的非正常退出情况:
    1.服务器端系统异常。
    2.会话超时。
    3.未退出的情况下,关闭浏览器。
    4.用户网络不稳定掉线。
    5.用户在登录的状态下,关机(掉电)了

    上述5种情况,前2中到相应好解决,后几种不知怎么判断。还请多提前建议,思路或代码.
    或有其它的解决方法也可以,多谢了
    10 条回复    1970-01-01 08:00:00 +08:00
    nybux
        1
    nybux  
       2013-08-01 12:10:50 +08:00
    后面3种都属于会话超时
    fanghui
        2
    fanghui  
    OP
       2013-08-01 12:27:34 +08:00
    现在是登录后,给他个状态码,如用户网络不稳定突然掉线了,这样,他再次登录就登录不上了
    nsxuan
        3
    nsxuan  
       2013-08-01 12:56:41 +08:00 via iPad   ❤️ 2
    思路错了
    通常的做法是 允许重复登陆,但是上一个会话就终止了
    fangzhzh
        4
    fangzhzh  
       2013-08-01 13:47:55 +08:00   ❤️ 1
    提供一个通用思路: 心跳.
    超过一段时间,没有心跳, 就是断开.
    mengsidongwan
        5
    mengsidongwan  
       2013-08-01 14:06:50 +08:00
    问百度呀 www.baidu.com
    fanghui
        6
    fanghui  
    OP
       2013-08-01 14:15:32 +08:00
    是啊,大神说的,允许重复登录,把上一个会话给挤掉
    qifei
        7
    qifei  
       2013-08-01 14:17:16 +08:00
    不是正常退出的都歸為不正常退出
    fanghui
        8
    fanghui  
    OP
       2013-08-01 14:42:07 +08:00
    没错,web程序,不是实时性很高,心跳不太合适
    wotodoo
        9
    wotodoo  
       2013-08-01 15:53:23 +08:00   ❤️ 1
    这需求有点儿...
    @nsxuan 的说法应该更合理些
    允许重复登录,但第二次登录时可以给用户提醒,让用户来决定是踢掉前一个登录的还是本次放弃登录
    这样实现就比较简单了,拿到上一次登录的session,让他失效就可以了

    如果按照你的需求做,就掉到坑里了,意外情况太多了
    xiaoye5200
        10
    xiaoye5200  
       2013-08-01 16:48:26 +08:00
    心跳解决全部
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2489 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:32 · PVG 23:32 · LAX 07:32 · JFK 10:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.