在物联网中, 有2个通信API –
- 基于REST的通信API
- 基于Web套接字的通信API
可以使用REST原理或使用Web套接字协议来实现Web服务–
1.基于REST的通信API:
代表性状态转移(REST)是一组体系结构原理, 通过这些原理, 你可以设计着重于系统资源以及如何寻址和转移资源状态的Web服务和Web API。 REST API遵循请求-响应通信模型。 REST体系结构约束适用于分布式超媒体系统中的组件, 连接器和数据元素。
2.基于Web套接字的通信API:
Web套接字API允许客户端和服务器之间的双向全双工通信。它遵循排他对通信模型。此通信API不需要为要在客户端和服务器之间发送的每条消息建立新的连接。一旦建立了连接, 就可以连续不断地发送和接收消息, 而不会发生任何中断。 WebSocket API适用于具有低延迟或高吞吐量要求的IoT应用程序。
Rest API和Web Socket API之间的区别:
序号 | REST API | WEB SOCKET API |
---|---|---|
1. | 它是无状态协议。它不会存储数据。 | 它是有状态协议。它将存储数据。 |
2. | 它是单向的。只有服务器或客户端可以通信。 | 它是双向的。服务器或客户端均可接收或发送消息。 |
3. | 它是请求-响应模型。 | 它是全双工模型。 |
4. | HTTP请求包含标头(如head部分, title部分)之类的标头。 | 适用于实时应用。它没有任何开销。 |
5. | 将为每个HTTP请求建立新的TCP连接。 | 仅单TCP连接。 |
6. | 水平和垂直缩放(我们可以在水平和垂直方向上添加许多资源和用户数量)。 | 仅垂直缩放(我们只能垂直添加资源)。 |
7. | 取回数据取决于IP地址和端口号。 | 它取决于HTTP方法来检索数据。 |
8. | 在消息传输方面, 它比Web套接字要慢。 | Web套接字比REST API传输消息的速度更快。 |
9. | 它不需要内存或缓冲区来存储数据。 | 它需要内存和缓冲区来存储数据。 |