2

我正在记录一个我感到困惑的主题。我在 Android 上使用 MQTT。我可以成功注册客户端并将消息发送到静态通道。我创建了两个频道,并为一个客户订阅了一个频道,另一个订阅了另一个频道。每个频道都会收到正确的消息。对此非常满意。

现在我正在尝试拥有动态频道,以了解每个客户端的 id 以及它正在使用的频道。我不明白该怎么做。当我向 mosquitto 代理“注册”客户端时,我可以订阅“假”频道(我知道如果该频道不存在,代理会创建该频道?)但是我怎么知道哪个客户端在听哪个频道?谢谢你的任何想法。

4

1 回答 1

4

只是为了澄清一点——MQTT 并没有任何静态或动态通道的概念。如果您发布或订阅某个主题,或者如果该主题存在保留消息,则该主题存在,否则不存在。

该协议没有提供任何方法来确定哪些客户端正在收听哪些主题。不过,您可以在应用程序级别实现这一点。可以使用此处描述的存在机制来检测客户端是否已连接:http: //mqtt.org/wiki/doku.php/presence,您应该能够执行类似的操作来确定哪些客户端正在订阅哪些话题。

于 2013-01-08T08:55:53.590 回答