我正在记录一个我感到困惑的话题。我在Android上使用MQTT。我可以成功注册客户端并将消息发送到静态通道。我创建了两个频道,并将一个客户端订阅到一个频道,另一个订阅到另一个频道。每个频道都会收到正确的消息。 对此非常满意。
现在我正在尝试使用动态频道,了解每个客户端哪个ID以及它正在使用哪个频道。我不明白该怎么做。当我向mosquitto经纪人“注册”一个客户时,我可以订阅一个“虚假”频道(我知道经纪人创建该频道,如果它不存在吗?)但我怎么知道哪个客户端收听哪个频道? 谢谢你的任何想法。
答案 0 :(得分:4)
只是为了清楚一点 - MQTT实际上没有任何静态或动态通道的概念。如果您发布或订阅某个主题,或者该主题存在保留的消息,那么它就存在,否则就不存在。
该协议没有提供任何方法来确定哪些客户正在收听哪些主题。您可以在应用程序级别实现此功能。检测客户端是否已连接可以使用此处描述的在线机制完成:http://mqtt.org/wiki/doku.php/presence您应该可以执行类似的操作来确定哪些客户端订阅了哪些主题。