当设备连接到 MQTT Broker 时获取设备配置

时间:2021-03-09 23:35:11

标签: raspberry-pi mqtt mosquitto

之前我已经设置了一个设备来连接到 Google Cloud IoT Core,当设备连接时,它会从服务器获得一个回调到带有设备配置文件的主题。

我目前正在将其转移到运行 Mosquitto 的 Raspberry Pi 上的本地 MQTT 代理。我想要做的是弄清楚如何在连接时复制配置文件的发送。

有没有办法让其他客户端知道新客户端何时连接?如果是这样,那么我可以在 Pi 上运行一个负责发送消息的客户端。

我们的想法是 Pi 将保存已连接设备的配置文件,一旦连接,它将通过该设备的主题发送回给它

或者还有其他我什至不知道的解决方案可以实现这一点吗?我之前没有设置自己的端到端 MQTT 通信,所以我在这里没有确切的前进路径

1 个答案:

答案 0 :(得分:0)

<块引用>

有没有办法让其他客户端知道新客户端何时连接?

不作为协议的一部分;但是在连接时发布消息很简单。我可以看到实现您的目标的几种方法:

  1. 将所有配置发布为 retained messages。为此,您需要为每个设备设置一个“配置”主题(例如 config/uniquedevicename)。当客户端启动时,它将订阅相关主题并接收其配置(“服务器”需要向每个设置了保留标志的配置通道发布消息)。
  2. 启动后,设备会发布一条消息,请求其配置;服务器订阅相关主题并以配置进行响应。您可以为回复使用预设主题,也可以将主题作为 part of the request 传入。

对于一个(或少量设备)选项 1 实施起来非常简单;但是,选项 2 提供了更大的灵活性。