V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
gdfsjunjun
V2EX  ›  程序员

有哪些基于 Websocket 扫码登录的案例?为什么不常见?

  •  
  •   gdfsjunjun · Nov 23, 2020 · 4499 views
    This topic created in 1991 days ago, the information mentioned may be changed or developed.

    微信扫码登录采用的是 Ajax 轮询,但是完全没有找到过基于 Websocket 扫码登录的现实案例,为什么这个技术没人用在扫码登录上?明明这样响应速度更快,难道是有什么缺点?

    30 replies    2020-11-24 14:13:53 +08:00
    xuanbg
        1
    xuanbg  
       Nov 23, 2020   ❤️ 1
    响应速度更快能快多少?没有利益的事情是没人会干的。
    DoctorCat
        2
    DoctorCat  
       Nov 23, 2020
    架构上的 tradeoff,轮询不用保持长链接,意味着服务端可以随时切换,体验上更好
    ClaudeCode
        3
    ClaudeCode  
       Nov 23, 2020   ❤️ 5
    Websocket 响应更快, 你怎么不说账号密码登录更快.
    个人认为扫码登录就是为了提高 App 日活的脑瘫设计.
    kop1989
        4
    kop1989  
       Nov 23, 2020   ❤️ 1
    我认为主要的问题就是开发成本高。
    对于普通的 web 应用场景而言(甚至包括 web 版微信聊天),长轮询甚至轮询就已经够用了。
    采用 websocket,软件工程上不划算。
    photon006
        5
    photon006  
       Nov 23, 2020
    钉钉算不算常见,可能 linux 用户不常见
    lazypu
        6
    lazypu  
       Nov 23, 2020
    因为够用了
    acmore
        7
    acmore  
       Nov 23, 2020
    开销大,需要维持状态不灵活。
    实现起来也比一来一回更麻烦。
    gdfsjunjun
        8
    gdfsjunjun  
    OP
       Nov 23, 2020
    asLw0P981N0M0TCC
        9
    asLw0P981N0M0TCC  
       Nov 23, 2020
    我也发现了
    u6pM63mMZ34z32cE
        10
    u6pM63mMZ34z32cE  
       Nov 23, 2020
    同样的效果, http 轮询比 websocket 开发简单, 消耗更少的服务器资源
    abersheeran
        11
    abersheeran  
       Nov 23, 2020
    陈年架构,如果没有非换不可的原因不会换的。HTTP 这一套很成熟了,要说服人去换 WebSocket,只有一种可能——你是新上任的技术管理层,为了表现,让手下的码农去换技术实现。
    Xusually
        12
    Xusually  
       Nov 23, 2020
    显示出二维码后,用户掏出 iPhone 12,打开微信,有信号没网,飞行模式一下,15s 后有信号了,主卡卡住,换副卡,好嘛。。。1 分钟过去了,websocket 这链接就一直占用着。。。
    gzlock
        13
    gzlock  
       Nov 23, 2020 via iPhone
    @Xusually 你在手机上没用过 WiFi ?
    gdfsjunjun
        14
    gdfsjunjun  
    OP
       Nov 23, 2020
    @yaocai321 确实扫码比较反人类,本来是不想使用手机才在电脑登录,现在还要拿手机扫。
    也不是说扫码就一无是处,反正我在公用电脑登录都是无痕模式+扫码,这样浏览器根本不可能记住我的密码,感觉要安全些。
    而且扫码不是对那些老一辈的基本上没接触电脑的更友好一些吗?打字速度非常慢,还不如直接扫码简单快捷。
    gdfsjunjun
        15
    gdfsjunjun  
    OP
       Nov 23, 2020
    @abersheeran 2333,你想多了,学生而已,最近对 Websocket 感兴趣,先看看有哪些现实案例,如果运用广泛我就去学一下了,现在看来似乎这个技术并没太大用处。
    laravel
        16
    laravel  
       Nov 23, 2020
    因为没必要啊,同时登陆的用户能有几个? long polling 足够了,并不是所有浏览器都支持 websocket
    chendy
        17
    chendy  
       Nov 23, 2020
    只要轮询满足需求,就不用 ws
    实现复杂度和运行成本根本不在一个量级
    whywhywhy
        18
    whywhywhy  
       Nov 23, 2020   ❤️ 1
    = =!

    以前一水的觉得 ws 好,各种高大上,要摆脱掉轮询……

    怎么现在又回到轮询了。。。
    sunmoon1983
        19
    sunmoon1983  
       Nov 23, 2020
    我觉得有可能是因为要兼容一些老版本的浏览器才这么干的
    x86
        20
    x86  
       Nov 23, 2020 via Android
    @yaocai321 公共环境呀,起码我在网咖或其它公共区域电脑登入我情愿扫码
    tairan2006
        21
    tairan2006  
       Nov 23, 2020
    一般来说是没必要,因为这个场景太简单了…没专门搞个长连接服务
    suchbear
        22
    suchbear  
       Nov 23, 2020
    我自己网站用的这个,但是因为没有用户,我也不知道这个 websocket 到底如何,哈哈哈
    brezp
        23
    brezp  
       Nov 23, 2020
    微信多老了,旧的才用轮询吧, 你先开发的那些应用内的聊天室什么的肯定有 websocket 就用 websocket 阿,没觉得有什么高成本的
    hotcool100
        24
    hotcool100  
       Nov 23, 2020
    主要是 websocket 的 session 和 http session 是不同的,如果用 websocket 那么还要做额外的 session 一致性处理等增加一堆代码,相比起来,ajax 多省事。
    mywaiting
        25
    mywaiting  
       Nov 23, 2020 via iPhone
    使用 ws 的扫码登录,可以去看一下 whatsapp 的登录实现

    使用 ws 并不会更快,而且使用 ws 相当于裸 tcp 层,需要自己实现应用层协议,相对来说,使用 http 更简单
    zhouyg
        26
    zhouyg  
       Nov 23, 2020
    用 websocket,投入大的多而回报跟 ajax 基本没差别
    a62527776a
        27
    a62527776a  
       Nov 23, 2020
    微信最新版的 web IMSDK 用的就是轮询
    yemoluo
        28
    yemoluo  
       Nov 23, 2020
    因为性能要求不高,高了反而坏事
    metrxqin
        29
    metrxqin  
       Nov 23, 2020 via Android
    WS 需要维持长时间 TCP 连接,服务端开销比较大。
    liKeYunKeji
        30
    liKeYunKeji  
       Nov 24, 2020
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3073 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 140ms · UTC 15:05 · PVG 23:05 · LAX 08:05 · JFK 11:05
    ♥ Do have faith in what you're doing.