用于云设备通信的MQTT或REST

时间:2018-10-04 00:54:31

标签: rest mqtt iot

我正在尝试做一个IoT项目,其中节点需要从云接收一些命令。 以前,我是使用MQTT协议实现的。但是在互联网上搜索其他协议时,我发现了REST,这使得通过HTTP进行通信成为可能。但是,我已经看到该协议更多地用于获取数据(向节点发出请求并在响应中从该节点接收数据)。 我对这个协议很陌生。因此,我想知道是否还可以像在MQTT中一样从云将命令发送到节点。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

HTTP协议(因此基于请求/响应模型)并将其用于IoT设备命令可能具有以下缺点:

  1. 您的设备将需要通过Internet进行访问,当您可以使用MQTT订阅使设备具有Internet访问权限,但不允许传入连接时,这可能是安全性的折衷。
  2. 您将需要一些机制来重试和处理发送命令的云应用程序中的脱机设备。

考虑到MQTT的连接寿命长,HTTP上的开销也比MQTT多。使用HTTP,您将浪费更多的电源进行连接和断开连接,并且网络数据包将比MQTT大。

您可以使用REST / HTTP向设备发送命令吗? 。你应该做吗? 可能不是,这完全取决于您的实际设备要求和功能以及为什么要替换MQTT。

答案 1 :(得分:0)

与REST类似的IoT协议为CoAP。如果您正在考虑在IoT上下文中使用REST,建议您看看它。如果您的节点始终处于连接/可访问状态,那么没有什么可以阻止这个方向的发展。 CoAP是一种分散式服务协议,其中每个节点都可以与另一个节点通话。

MQTT是具有中央代理的发布/订阅协议。这样,您的云就可以仅将命令发送到代理,并且只要节点连接到代理,它将接收命令。因此,该节点不必始终保持在线。