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

Get device configuration when device connects to MQTT Broker

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

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

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

当时的想法是 Pi 会保存已连接设备的配置文件,一旦连接,它就会通过该设备的主题发回给它

或者是否有另一种我什至不知道的解决方案可以实现此目的?我之前没有设置自己的端到端 MQTT 通信,所以我在这里没有前进的道路

Is there a way for other clients to know when a new client connects?

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

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

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