我正在记录一个我感到困惑的主题。我在 Android 上使用 MQTT。我可以成功注册客户端并将消息发送到静态 channel 。我创建了两个 channel ,并将一个客户端订阅一个 channel ,另一个客户端订阅另一个 channel 。每个 channel 都会收到正确的消息。 对此非常满意。
现在我正在尝试拥有动态 channel ,以了解每个客户端的 id 以及它正在使用哪个 channel 。我不明白该怎么做。当我向 mosquitto 经纪人“注册”客户端时,我可以订阅一个“假” channel (我知道经纪人会创建该 channel ,如果它不存在,对吗?)但是我如何知道哪个客户端监听哪个 channel ? 感谢您提供任何想法。
最佳答案
为了澄清一点 - MQTT 实际上没有任何静态或动态 channel 的概念。如果您发布或订阅某个主题,或者该主题存在保留消息,则该消息存在,否则不存在。
该协议(protocol)没有提供任何方法来确定哪些客户端正在收听哪些主题。不过,您可以在应用程序级别实现此功能。可以使用此处描述的存在机制来检测客户端是否已连接:http://mqtt.org/wiki/doku.php/presence您应该能够执行类似的操作来确定哪些客户正在订阅哪些主题。
关于android - Android 和 MQTT 的动态 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14206100/