用于云设备通信的 MQTT 或 REST
MQTT or REST for cloud-device communication
我正在尝试做一个 IoT 项目,其中一个节点需要从云端接收一些命令。
以前,我是用 MQTT 协议做的。但是在互联网上搜索其他协议时,我发现了 REST,它可以通过 HTTP 进行通信。但是我已经看到该协议更多地用于获取数据(向节点发出请求并在响应中从中接收数据)。
我对这个协议很陌生。所以,我想知道是否也可以从云端向节点发送命令,就像在 MQTT 中一样。
非常感谢您的帮助。
HTTP 协议因此基于 Request/Response 模型并将其用于 IoT 设备命令可能有其缺点:
- 您的设备将需要可通过 Internet 访问,当您可以使用 MQTT 订阅使设备访问 Internet 但不允许传入连接时,这可能会危及安全。
- 您将需要一些机制来重试和处理您的云应用程序中发送命令的离线设备。
考虑到 MQTT 具有长期连接,HTTP 的开销也比 MQTT 高。使用 HTTP 你将在连接和断开连接上浪费更多的能量,而且网络数据包将比 MQTT 更大。
您可以使用 REST/HTTP 向设备发送命令吗? 是。你应该这样做吗? 可能不会,这完全取决于您的实际设备要求和功能以及您为什么要替换 MQTT。
类似于 REST 的物联网协议是 CoAP。如果您正在考虑在物联网环境中使用 REST,我建议您看一看。如果你的节点总是 connected/reachable 没有什么可以反对朝这个方向发展。 CoAP 是一种去中心化服务协议,其中每个节点都可以与另一个节点通信。
MQTT 是一个带有中央代理的 publish/subscribe 协议。因此,您的云可以只将命令发送到代理,只要节点连接到代理,它就会收到命令。所以节点不必一直在线。
我正在尝试做一个 IoT 项目,其中一个节点需要从云端接收一些命令。 以前,我是用 MQTT 协议做的。但是在互联网上搜索其他协议时,我发现了 REST,它可以通过 HTTP 进行通信。但是我已经看到该协议更多地用于获取数据(向节点发出请求并在响应中从中接收数据)。 我对这个协议很陌生。所以,我想知道是否也可以从云端向节点发送命令,就像在 MQTT 中一样。
非常感谢您的帮助。
HTTP 协议因此基于 Request/Response 模型并将其用于 IoT 设备命令可能有其缺点:
- 您的设备将需要可通过 Internet 访问,当您可以使用 MQTT 订阅使设备访问 Internet 但不允许传入连接时,这可能会危及安全。
- 您将需要一些机制来重试和处理您的云应用程序中发送命令的离线设备。
考虑到 MQTT 具有长期连接,HTTP 的开销也比 MQTT 高。使用 HTTP 你将在连接和断开连接上浪费更多的能量,而且网络数据包将比 MQTT 更大。
您可以使用 REST/HTTP 向设备发送命令吗? 是。你应该这样做吗? 可能不会,这完全取决于您的实际设备要求和功能以及您为什么要替换 MQTT。
类似于 REST 的物联网协议是 CoAP。如果您正在考虑在物联网环境中使用 REST,我建议您看一看。如果你的节点总是 connected/reachable 没有什么可以反对朝这个方向发展。 CoAP 是一种去中心化服务协议,其中每个节点都可以与另一个节点通信。
MQTT 是一个带有中央代理的 publish/subscribe 协议。因此,您的云可以只将命令发送到代理,只要节点连接到代理,它就会收到命令。所以节点不必一直在线。