如何检查MQTT中是否存在主题?

问题描述:

我正在用eclipse paho java库使用mosquitto MQ。我希望在订阅主题并获取消息之前检查主题是否存在。我怎么做 ?如何检查MQTT中是否存在主题?

简短的回答是你没有。

主题是不是真的存在,直到消息被发布到一个瞬间的东西。

订户告诉经纪人什么样的话题是感兴趣的,应当发布一条消息发布到这些议题则消息将被转发到该用户(ACLS允许)之一。

订阅可以到包含通配符,如果你想匹配的不仅仅是一个单一的主题更可以帮助主题进行。有2个通配符字符。

  • +它匹配主题中的单个元素。例如foo/+/bar将匹配foo/1/bar和foo/something/bar

  • #它匹配多个片段,但仅在主题末尾。例如/ foo /#将匹配/ foo/1和foo/bar/1 /某物。你不能把这个地方,但在年底使富/#/条将无法正常工作

$SYS主题@ΦXocę웃Пepeúpaツ提及经纪人只供应统计不是存在的主题。

+0

基本上我想订阅只要有人发布到相应主题的话题。有没有办法检查? –

+0

不,唯一的办法是订阅并看到 – hardillb

+0

哦谢谢Hardillb。那么,在回拨执行之后,如何断开连接后,如何才能在宁静的服务中获取消息。 –

有没有像在代理浏览主题...

最你可以订阅的$ SYS,但是这将取决于一些券商的配置,让你到

的约$ Sys系统信息的文档是:

  • $ SYS /经纪人/负载/字节/接收: 总NUM自经纪人开始以来收到的字节数。

  • $ SYS /经纪人/负载/字节/发送: 因为经纪人开始发送的字节总数。

  • $ SYS /经纪人/客户/相连: 持久的客户总数: 当前连接的客户端

  • $ SYS /经纪人/客户/断开数(禁用干净会话),它们在代理处注册但当前已断开连接。

  • $ SYS /经纪人/客户/最大: 已连接到代理活动客户端的最大数量。这仅在$ SYS主题树更新时计算,因此可能不计算短期客户端连接数。

  • $ SYS /经纪人/客户/总: 连接和断开连接的客户端与当前连接,并在代理注册的持续性会话总数。

  • $ SYS /经纪人/消息/接收: 因为经纪人开始收到任何类型的消息的总数。

  • $ SYS /经纪人/消息/发送: 因为经纪人发送的任何类型的消息的总数。

  • $ SYS /经纪人/消息/发布/下降: 发布/已因空中跌落的消息队列限制的总数。

  • $ SYS /经纪人/消息/发布/接收: PUBLISH因为经纪人开始收到的邮件的总数。

  • $ SYS /经纪人/消息/发布/发送: PUBLISH因为经纪人开始发送的消息的总数。

  • $ SYS /代理/消息/保留/计数: 在代理上活性保留的消息的总数。

  • $ SYS /经纪人/订阅/数: 在代理活动订阅的总数。

  • $ SYS /经纪人/时间: 的当前时间在服务器上。

  • $ SYS /经纪人/正常运行时间:以秒计的经纪人一直在线 的时间量。

  • $ SYS /经纪人/版本: 代理的版本。静态的。