V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Grocker
V2EX  ›  编程

SSO 单点登录时一端被挤下去让客户端及时感知的方案

  •  
  •   Grocker · 2022-06-01 18:10:50 +08:00 · 1682 次点击
    这是一个创建于 910 天前的主题,其中的信息可能已经有所发展或是发生改变。

    场景:2 个系统登录了不同的端,客户端被挤下去了,但此时用户没有发起任何网络请求,导致看起来还处于登陆状态,必须重新发起操作后才能被踢下去,用户体验不太好。现在想一端被挤下去后可以立刻踢下线。

    自己想到的方案:

    • websocket (或者其它主动推送的方式)
    • 轮询
    • http2 server push (这个方案更多的是推静态资源?)

    老哥们有其他更好的方案吗?谢了

    8 条回复    2022-07-08 18:36:28 +08:00
    dcty
        1
    dcty  
       2022-06-01 18:16:58 +08:00 via iPhone
    当然是都用上,搞个 fallback
    whoosy
        2
    whoosy  
       2022-06-01 18:21:57 +08:00
    轮询成本小
    ch2
        3
    ch2  
       2022-06-01 18:24:40 +08:00
    轮询最简单
    daliusu
        4
    daliusu  
       2022-06-01 18:31:27 +08:00   ❤️ 1
    http2 server push 和 websocket 这种服务器给你推消息是两码事,这不是让你服务器主动和页面通信的。你这个需求如果实时性要求不高,暂时就走轮询就行,维护一个 websocket 还挺麻烦的。
    clickhouse
        5
    clickhouse  
       2022-06-01 18:45:49 +08:00
    轮询.
    sadfQED2
        6
    sadfQED2  
       2022-06-01 18:51:13 +08:00 via Android
    轮询+1
    因为其他方案成本太大了,大得离谱那种
    jackma0571
        7
    jackma0571  
       2022-06-02 09:03:08 +08:00
    维护一个心跳请求就行
    dfgxcvbcv
        8
    dfgxcvbcv  
       2022-07-08 18:36:28 +08:00
    操作再下线,没操作不发任何请求才是一个正常程序的做法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5042 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:47 · PVG 17:47 · LAX 01:47 · JFK 04:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.