newton_miku
文章11
标签17
分类6
Websocket比http更稳定高效

Websocket比http更稳定高效

为什么说Websocket(以下简称ws)比http更加稳定高效?

因为http是单向连接,服务器无法主动返回信息给客户端。

当你对某个api频繁调用时,如果后端服务器不够强大,很可能出现响应时间过长甚至无法响应的问题(例如,我对某个api调用达到了100ms甚至50ms级别时,很可能就会出现这种情况。注:客户端与后端服务器均在同一机器上运行,可忽略外部网络因素问题)

主要是上面这种情况中,使用的是http协议,http协议每次请求都会重新建立连接(当然,也可通过请求的头部信息尝试建立长连接,但是仅仅是延缓问题的发生而已)

但是,如果我们使用ws协议呢,ws协议首先会握手,然后建立一个tcp连接,并保持这个连接(除非主动或因意外才会断开连接)。因此,我们可以看出来,ws相比http节约了多次握手的时间,因此其响应时间可以更短。

简单的用一个图来表示如下(图片源自网络)

http与ws的对比

总结

简单点说,ws仅需一个tcp连接,http则是有多少次请求就有多少个连接,并且每次都要握手,因此,在频繁的请求中,推荐使用ws进行连接

还有一种情况,当服务器需要主动联系客户端时,也要采用ws(准确说是只能,当然,也可以使用心跳等方法)

参考资料

本文作者:newton_miku
本文链接:http://blog.ddxnb.cn/2023/06/15/Websocket%E6%AF%94http%E6%9B%B4%E7%A8%B3%E5%AE%9A%E9%AB%98%E6%95%88/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
本文阅读量:
×