我知道 MQTT 使用发布/订阅,这意味着所有客户端都可以发布/订阅到任何主题,并且所有客户端都必须连接到 MQTT 代理。
使用 MQTT 为 IoT 设备设置数据也是一种好的做法吗?
让我们想象物联网设备是一个可以通过网络应用程序控制的智能灯。 Web 应用程序将订阅 r/g/b 值和强度,然后在应用程序中可视化这些值。
但是通过 MQTT 设置数据也是好的做法吗?这意味着 Web 应用程序将发布到主题
/deviceID/set/r/255
(或类似的内容),并且只有 IoT 设备订阅主题 /deviceID/set/#
。
如果这不是常见做法,有哪些选择? 我们是否必须为一台物联网设备实现多种协议?
正如您所描述的,通过 MQTT 将配置值发送到设备是完全有效的。只需确保对这些值进行强有力的验证,以避免任何滥用或安全问题。
是的,使用 MQTT 来发布和订阅 IoT 设备是一种常见的做法,可以提供统一的通信机制。在您的场景中,物联网设备是由网络应用程序控制的智能灯,使用 MQTT 来设置数据(发布)和接收更新(订阅)是绝对合理的
但是,如果您想探索网络应用程序和物联网设备之间通信的其他选项,您可以选择:
要回答您的最后一个问题,我们是否必须在物联网设备中实现多种协议?是和否,这取决于场景以及哪种协议与您的网关(大多数小鬼)和您的环境兼容。