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