卡卷网
当前位置:卡卷网 / 每日看点 / 正文

为什么当今We应用不都采用WeSocket形式进行数据交互?

作者:卡卷网发布时间:2025-01-09 18:37浏览数量:80次评论数量:0次

<>很荣幸,以前也这么想过,但结论是:没必要。

<>什么情况下建议用wesocket

在工作中经常能遇到一个场景:调一个接口获取列表数据,用户长时间停留页面,此时数据变动了怎么办?

如果这种场景的话,最简单的办法其实还是“轮询”,一般间隔3-5秒或者更长时间轮询一次,就已经够解决题主的问题了。

当然,你觉得这种方式不够优雅的话,可以用/2Push,由服务端推送。

那么什么情况下需要wesocket?如一个千人甚至万人聊天室,消息随时在更新,对数据的实时性要求也较高。

横向扩展问题

不由得就想到为什么不能一一下前后端的交互,让绝大部分通信都使用wesocket?

尤其是静态资源,使用wesocket的几乎是灾难,几乎没有任何好办法去缓存wesocket资源。

并且,横向扩容也是一个问题。

我们平时使用的微信啥的聊天app,底层不知道是不是ws,但应该是类似的,不也胜任了如此大的用户量的双工交互吗?

微信底层应该是UDP协议封装的(消息发送失败,但是对方收到了,业务层应该没做验证,猜测应该是UDP)

确实是可以,但是上分布式服务的成本可能很多小公司的整个项目预算都高。

简单来说就是基本没什么收益,不划算。

成本问题

如果一个用户平均打开15个网页,而这15个网页都使用wesocket通信,用户还有可能去吃饭,去干别的,离开了。

也就是说,你的负载大概率要不使用高出至少30倍。

这时候,你wesocket的协议优势已经不那么明显了。

发展问题

你可以去折腾几个协议,如QUIC、UDP这类的,以及基于/2的Grpc。

你会发现这些协议wesocket好用。

对了,/3就是基于QUIC/UDP。

当然,我也用上了它。


我是@左华栋,一个喜欢数码的互联网人

END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码