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

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

  •  
  •   gdfsjunjun · 150 天前 · 2262 次点击
    这是一个创建于 150 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    使用 ws 并不会更快,而且使用 ws 相当于裸 tcp 层,需要自己实现应用层协议,相对来说,使用 http 更简单
    zhouyg
        26
    zhouyg   150 天前
    用 websocket,投入大的多而回报跟 ajax 基本没差别
    a62527776a
        27
    a62527776a   150 天前
    微信最新版的 web IMSDK 用的就是轮询
    GTim
        28
    GTim   150 天前
    因为性能要求不高,高了反而坏事
    metrxqin
        29
    metrxqin   149 天前 via Android
    WS 需要维持长时间 TCP 连接,服务端开销比较大。
    pytth
        30
    pytth   149 天前
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2550 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 12:05 · PVG 20:05 · LAX 05:05 · JFK 08:05
    ♥ Do have faith in what you're doing.