当前位置: 首页 > 教程 > Websocket >

Websocket API

精华
小牛编辑
174浏览
2023-03-14

API是应用程序接口的缩写,是一组用于构建软件应用程序的例程,协议和工具。
一些重要的功能是 -

  • API指定软件组件应如何交互,以及在编写图形用户界面(GUI)组件时应使用API。
  • 一个好的API可以通过提供所有构建块来更轻松地开发程序。
  • REST通常在HTTP上运行,通常用于移动应用程序,社交网站,mashup工具和自动化业务流程。
  • REST风格强调通过使用有限数量的操作(动词)来增强客户端和服务之间的交互。
  • 通过分配资源提供灵活性; 他们自己独特的统一资源标识符(URI)。
  • REST避免歧义,因为每个动词都有特定含义(GET,POST,PUT和DELETE)

Websocket的优点

Web Socket解决了REST或HTTP的一些问题 -

双向
HTTP是一种单向协议,客户端始终发起请求。服务器处理并返回响应,然后客户端使用它。Websocket是一种双向协议,其中没有预定义的消息模式,例如请求/响应。客户端或服务器可以向另一方发送消息。

全双工
HTTP允许请求消息从客户端转到服务器,然后服务器向客户端发送响应消息。在给定时间,客户端正在与服务器通信,或者服务器正在与客户端通信。Websocket允许客户端和服务器相互独立地进行通信。

单TCP连接
通常,为HTTP请求启动新的TCP连接,并在收到响应后终止。需要为另一个HTTP请求/响应建立新的TCP连接。对于Web Socket,使用标准HTTP升级机制升级HTTP连接,并且客户端和服务器通过相同的TCP连接进行通信以进行Web Socket连接的生命周期。

下面给出的图表显示了为恒定有效负载大小处理N个消息所花费的时间(以毫秒为单位)。

以下是为此图表提供的原始数据 -

上面给出的图表和表格显示REST开销随着消息数量的增加而增加。这是真的,因为需要启动和终止许多TCP连接,并且需要发送和接收许多HTTP头。

最后一列特别显示了完成REST请求所需时间的倍增因子。
第二个图显示了通过改变有效负载大小来处理固定数量的消息所花费的时间。
有效负载大小

以下是为此图表提供的原始数据 -

此图表显示处理REST端点的请求/响应的增量成本是最小的,并且大部分时间花费在连接启动/终止和遵守HTTP语义上。

结论
Web Socket是一种低级协议。包括简单的请求/响应设计模式,如何创建/更新/删除资源需求,状态代码等都要建立在它之上。所有这些都为HTTP定义良好。

Web Socket是一种有状态协议,而HTTP是无状态协议。Web套接字连接可以在单个服务器上垂直扩展,而HTTP可以水平扩展。Web Socket水平扩展有一些专有解决方案,但它们不是基于标准。HTTP附带了许多其他好东西,如缓存,路由和多路复用。所有这些都需要在Web Socket之上定义。