微信扫码登录采用的是 Ajax 轮询,但是完全没有找到过基于 Websocket 扫码登录的现实案例,为什么这个技术没人用在扫码登录上?明明这样响应速度更快,难道是有什么缺点?
微信扫码登录采用的是 Ajax 轮询,但是完全没有找到过基于 Websocket 扫码登录的现实案例,为什么这个技术没人用在扫码登录上?明明这样响应速度更快,难道是有什么缺点?
|
1
响应速度更快能快多少?没有利益的事情是没人会干的。
|
|
DoctorCatNov 23, 2020
2
架构上的 tradeoff,轮询不用保持长链接,意味着服务端可以随时切换,体验上更好
|
|
3
Websocket 响应更快, 你怎么不说账号密码登录更快.
个人认为扫码登录就是为了提高 App 日活的脑瘫设计. |
|
4
我认为主要的问题就是开发成本高。
对于普通的 web 应用场景而言(甚至包括 web 版微信聊天),长轮询甚至轮询就已经够用了。 采用 websocket,软件工程上不划算。 |
|
photon006Nov 23, 2020
5
钉钉算不算常见,可能 linux 用户不常见
|
|
lazypuNov 23, 2020
6
因为够用了
|
|
acmoreNov 23, 2020
7
开销大,需要维持状态不灵活。
实现起来也比一来一回更麻烦。 |
|
8
@photon006 钉钉也是轮询[img]https://i.loli.net/2020/11/23/Z9iogwFsIdz5jLm.png[/img]
|
|
asLw0P981N0M0TCCNov 23, 2020
9
我也发现了
|
|
u6pM63mMZ34z32cENov 23, 2020
10
同样的效果, http 轮询比 websocket 开发简单, 消耗更少的服务器资源
|
|
abersheeranNov 23, 2020
11
陈年架构,如果没有非换不可的原因不会换的。HTTP 这一套很成熟了,要说服人去换 WebSocket,只有一种可能——你是新上任的技术管理层,为了表现,让手下的码农去换技术实现。
|
|
XusuallyNov 23, 2020
12
显示出二维码后,用户掏出 iPhone 12,打开微信,有信号没网,飞行模式一下,15s 后有信号了,主卡卡住,换副卡,好嘛。。。1 分钟过去了,websocket 这链接就一直占用着。。。
|
|
14
@yaocai321 确实扫码比较反人类,本来是不想使用手机才在电脑登录,现在还要拿手机扫。
也不是说扫码就一无是处,反正我在公用电脑登录都是无痕模式+扫码,这样浏览器根本不可能记住我的密码,感觉要安全些。 而且扫码不是对那些老一辈的基本上没接触电脑的更友好一些吗?打字速度非常慢,还不如直接扫码简单快捷。 |
|
15
@abersheeran 2333,你想多了,学生而已,最近对 Websocket 感兴趣,先看看有哪些现实案例,如果运用广泛我就去学一下了,现在看来似乎这个技术并没太大用处。
|
|
laravelNov 23, 2020
16
因为没必要啊,同时登陆的用户能有几个? long polling 足够了,并不是所有浏览器都支持 websocket
|
|
chendyNov 23, 2020
17
只要轮询满足需求,就不用 ws
实现复杂度和运行成本根本不在一个量级 |
|
18
= =!
以前一水的觉得 ws 好,各种高大上,要摆脱掉轮询…… 怎么现在又回到轮询了。。。 |
|
sunmoon1983Nov 23, 2020
19
我觉得有可能是因为要兼容一些老版本的浏览器才这么干的
|
|
keenkillerNov 23, 2020
21
一般来说是没必要,因为这个场景太简单了…没专门搞个长连接服务
|
|
suchbearNov 23, 2020
22
我自己网站用的这个,但是因为没有用户,我也不知道这个 websocket 到底如何,哈哈哈
|
|
brezpNov 23, 2020
23
微信多老了,旧的才用轮询吧, 你先开发的那些应用内的聊天室什么的肯定有 websocket 就用 websocket 阿,没觉得有什么高成本的
|
|
hotcool100Nov 23, 2020
24
主要是 websocket 的 session 和 http session 是不同的,如果用 websocket 那么还要做额外的 session 一致性处理等增加一堆代码,相比起来,ajax 多省事。
|
|
mywaitingNov 23, 2020 via iPhone
25
使用 ws 的扫码登录,可以去看一下 whatsapp 的登录实现
使用 ws 并不会更快,而且使用 ws 相当于裸 tcp 层,需要自己实现应用层协议,相对来说,使用 http 更简单 |
|
zhouygNov 23, 2020
26
用 websocket,投入大的多而回报跟 ajax 基本没差别
|
|
a62527776aNov 23, 2020
27
微信最新版的 web IMSDK 用的就是轮询
|
|
yemoluoNov 23, 2020
28
因为性能要求不高,高了反而坏事
|
|
metrxqinNov 23, 2020 via Android
29
WS 需要维持长时间 TCP 连接,服务端开销比较大。
|
|
liKeYunKejiNov 24, 2020
30
|