为什么我对 public MQTT 代理的订阅只收到我自己的消息?
Why does my subscription to the public MQTT broker receive no messages but my own?
我正在 'broker.emqx.io' 使用 MQTT 代理,并已为客户订阅主题“/python/mqtt”,这是包含示例的 Github 存储库中的默认主题Python 中的客户端实现。我的订阅客户端正在接收我的发布客户端在示例代码中发布的消息。在我花费 运行 修改代码的时间里,显然全世界没有其他客户向该主题发布消息。是否发生了什么神奇的事情,使我本地网络中的订阅者只能收到从我的本地网络发布的消息?还是该主题没有流量?
最简单的答案是最有可能的,只是没有其他人运行该示例代码同时针对同一经纪人。
免责声明:我无法添加评论 :(,这应该是评论而不是答案。
然而 MQTT 标准定义了一套非常灵活的主题命名规则,有一些因实际原因而产生的限制。
前导反斜杠被主题过滤器接受,但它没有提供任何好处,相反,它引入了一个不必要的主题级别,而且是空的。也许他们在主题中引入它是为了展示某些东西,或者出于当时的其他原因,比如让人们注意到它;)。
还有一些其他字符也有特殊含义,例如$
,通常用于命名发布统计信息或其他相关信息的系统定义主题。
大多数代理文档都提供了命名主题的简短指南,例如 HiveMQ does。
我正在 'broker.emqx.io' 使用 MQTT 代理,并已为客户订阅主题“/python/mqtt”,这是包含示例的 Github 存储库中的默认主题Python 中的客户端实现。我的订阅客户端正在接收我的发布客户端在示例代码中发布的消息。在我花费 运行 修改代码的时间里,显然全世界没有其他客户向该主题发布消息。是否发生了什么神奇的事情,使我本地网络中的订阅者只能收到从我的本地网络发布的消息?还是该主题没有流量?
最简单的答案是最有可能的,只是没有其他人运行该示例代码同时针对同一经纪人。
免责声明:我无法添加评论 :(,这应该是评论而不是答案。
然而 MQTT 标准定义了一套非常灵活的主题命名规则,有一些因实际原因而产生的限制。
前导反斜杠被主题过滤器接受,但它没有提供任何好处,相反,它引入了一个不必要的主题级别,而且是空的。也许他们在主题中引入它是为了展示某些东西,或者出于当时的其他原因,比如让人们注意到它;)。
还有一些其他字符也有特殊含义,例如$
,通常用于命名发布统计信息或其他相关信息的系统定义主题。
大多数代理文档都提供了命名主题的简短指南,例如 HiveMQ does。