我尝试阅读一些文章,但对这个主题不是很清楚。
可以有人向我解释以下几点吗:
- 为什么要使用WebSocket而不是HTTP
- 什么是全双工通信
- 低延迟交互是什么意思
我尝试阅读一些文章,但对这个主题不是很清楚。
可以有人向我解释以下几点吗:
为什么要使用 WebSocket 而不是 HTTP?
WebSocket 是客户端和服务器之间的持续连接。这种持续连接允许以下操作:
数据可以在没有客户端请求的情况下随时从服务器发送到客户端。这通常称为服务器推送,并且对于需要快速了解服务器上发生的事件(例如接收到新聊天消息或更新了新价格)的应用程序非常有价值。无法通过 HTTP 向客户端推送数据。客户端必须定期轮询,每几秒钟进行一次 HTTP 请求,以获取及时的新数据。客户端轮询效率低。
数据可以非常高效地双向发送。因为连接已经建立,且 WebSocket 数据帧非常高效组织(大多数是 6 个额外字节,2 字节头和 4 字节掩码),所以可以比通过包含头、cookie 等信息的 HTTP 请求更加高效地发送数据。
什么是全双工通信?
全双工意味着可以在连接上任何时候双向发送数据。
什么是低延迟交互?
低延迟意味着请求和响应之间的延迟非常小。对于 WebSocket,它只是意味着数据可以更快地发送(特别是在慢速链接上),因为连接已经建立,无需额外的包往返来建立 TCP 连接。
要比较通过 HTTP 请求与已建立的 WebSocket 连接发送数据所涉及的步骤,请参阅此答案中列出的步骤:websocket vs rest API for real time data?
这些其他参考资料也可能有用: