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

2022-09-01 09:21:48

我尝试阅读一些文章,但对这个话题并不那么清楚。

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

  • 为什么使用 websocket over http
  • 什么是全双工通信
  • 低延迟交互是什么意思

答案 1

为什么在http上使用websocket?

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

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

  2. 数据可以非常有效地以任何一种方式发送。由于连接已经建立并且webSocket数据帧组织得非常有效(主要是6个额外的字节,2个字节用于标头,4个字节用于掩码),因此与通过HTTP请求(必须包含标头,cookie等)相比,可以更有效地发送数据。

什么是全双工通信?

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

低延迟交互是什么意思

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

有关通过http请求发送某些数据与已建立的webSocket连接所涉及的内容的比较,请参阅此答案中列出的步骤:websocket与实时数据的rest API?

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

每当调用函数时的服务器推送:Ajax 或 WebSockets

对于推送通知,Websocket 是必需的吗?

HTML5 WebSocket:Web可扩展性的巨大飞跃


答案 2

推荐