为什么要使用 websocket,使用它有什么好处?

Why to use websocket and what is the advantage of using it?

我试着阅读了一些文章,但对这个主题不是很清楚。

有人愿意向我解释以下几点吗:

Why use websocket over http?

webSocket 是客户端和服务器之间的持续连接。该连续连接允许以下内容:

  1. 数据可以随时从服务器发送到客户端,甚至不需要客户端请求。这通常称为 server-push 并且对于客户端需要在服务器上发生某些事情时相当快地知道的应用程序非常有价值(例如已收到新的聊天消息或已更新新价格)。客户端无法通过 http 推送数据。客户端必须通过每隔几秒发出一个 http 请求来定期轮询,以便及时获取新数据。客户端轮询效率不高。

  2. 两种方式都可以非常高效地发送数据。因为连接已经建立并且 webSocket 数据帧组织得非常有效(主要是 6 个额外字节,header 2 个字节和掩码 4 个字节),与通过 HTTP 请求相比,发送数据的效率要高得多必须包含 headers、cookie 等...

what is full duplex communication?

全双工意味着数据可以随时在连接上以任一方式发送。

what do you mean by lower latency interaction

低延迟意味着在您请求某项内容和获得响应之间几乎没有延迟。当它应用于 webSockets 时,它只是意味着可以更快地发送数据(特别是通过慢速链接),因为连接已经建立,因此不需要额外的数据包往返来建立 TCP 连接。

要比较通过 http 请求发送一些数据与已经建立的 webSocket 连接所涉及的内容,请参阅此答案中列出的步骤:websocket vs rest API for real time data?

这些其他参考资料也可能有用:

Server-push whenever a function is called: Ajax or WebSockets

For a push notification, is a websocket mandatory?

HTML5 WebSocket: A Quantum Leap in Scalability for the Web