有没有办法确定已订阅哪些 MQTT 主题?

Is there a way of determining what MQTT topics have been subscribed to?

我有一个微控制器,它有可能以相对较高的速度发布 1,000 个不同的主题。

我还有一个树莓派 运行 mosquitto 以及一个单独的 MQTT 客户端。我的 pi 上的 MQTT 客户端会动态订阅和取消订阅 MCU 发布的各种主题。 Pi 在任何给定时间点只会订阅 ~10 个主题。我还计划添加额外的客户端,这些客户端将动态 subscribe/unsubscribe 到各种主题。

为了将网络流量保持在最低限度,我只想发布已订阅的主题。那么,有没有什么方法可以查询 mosquitto 以确定哪些主题已订阅?

pub/sub 架构的全部意义在于将消费者与提供者分离。您的发布者真的不应该关心是否有人订阅了给定的主题。

对于持久会话和 QOS 1/2 订阅,代理可能会在消息发布时为离线的客户端排队消息。

只需发布所有消息,让代理处理即可。