android - Android 和 MQTT 的动态 channel

标签 android mqtt

我正在记录一个我感到困惑的主题。我在 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/

相关文章:

android - 如何从没有上下文的类中调用 getResources()?

MQTT 的 JavaScript 客户端不使用 WebSockets

kotlin - HiveMQ MQTT 客户端 : subscribe to multiple topics

websocket - Mosquitto 1.4.2 Websocket 支持

android - ViewHolder 在偶数和奇数位置膨胀布局

android - 如何在调试中使用 Eclipse 交互式控制台

javascript - 有多少客户端使用 MQTT 订阅了某个主题

node.js - MQTT 客户端是否需要具有与 MQTT 代理用于 TLS 相同的 key 和证书?

android - 在 Android Market 上支持 QHD

java - 如何从返回android应用程序中的对象的android应用程序使用asmx web服务?