保留主题原样
逐行粘贴实际发布的 Topic;大小写、首尾斜杠、空格与两个斜杠之间的空层级都有效。只跳过长度为零的分隔行。
- 通配符示例会展示 sensors//temperature 为什么能被 + 匹配。
协议 / 二进制序列化
输入一个订阅过滤器和每行一个发布主题,再选择协议版本与消息场景。
过滤器和主题仅在此浏览器处理,不连接 Broker,也不发送网络请求。
过滤器中 + 独占一层,# 只能独占末层;发布主题不能含通配符。
一个过滤器、最多 1,000 行主题。只跳过空行,空格和空层级都保留。
输入过滤器和主题后开始。
设备发布成功而订阅端收不到消息时,MQTT 主题匹配测试能把大小写、斜杠、空层级和 $ 系统主题造成的差异逐项拆开。不要先改 Broker 配置,先确认 Topic 名称与订阅过滤器本身是否相符。
把真实主题列表粘进来,先看规则命中,再看已有保留消息是否会投递给新订阅。MQTT 5.0 的共享订阅可能命中过滤器,却不会收到加入前保存的保留消息。
过滤规则命中与消息投递是两层判断。
MQTT 主题匹配测试会指出 + 只替代一个完整层级,末尾 # 还能覆盖父层级。空层级和 $ 系统主题也按原样判断,不会偷偷去空格或改写大小写。
同一条已有保留消息可与普通订阅和 MQTT 5.0 共享订阅的过滤器同时匹配,但新加入的共享成员不会收到旧保留消息。结果逐行把这两件事分开显示。
逐行粘贴实际发布的 Topic;大小写、首尾斜杠、空格与两个斜杠之间的空层级都有效。只跳过长度为零的分隔行。
MQTT 5.0 会解析 $share/组名/过滤器;MQTT 3.1.1 不把它当标准共享订阅。保留场景只检查新订阅初次收到已有消息。
未命中行会指出第几个层级不同;共享保留行会区分规则命中与不投递。输入或选项变更后,旧结果不能复制或下载。
MQTT 主题通配符 + 只占完整一层,# 只能在末层,并可覆盖父主题;普通 glob 的 * 或 ? 不会被当成 MQTT 操作符。
一个 MQTT 主题过滤器可检查最多 1,000 行 Topic。结果保留原始行号,非法发布主题与普通未命中分开统计。
MQTT 5.0 会剥离 $share/组名/ 再匹配;3.1.1 只按字面层级比较,不会假装知道 Broker 的私有扩展。
不能。它们只可用于订阅过滤器;发布 Topic 中出现任意一个都会被本工具标为非法。+ 只能独占一个层级,# 还必须是最后的完整层级。
协议规定首字符为通配符的过滤器不匹配以 $ 开头的 Topic。若要检查系统主题,请另外使用 $SYS/# 这样的显式过滤器。
可以分别匹配,但共享组内实时消息由 Broker 选一位成员接收;加入共享组时不会补发已有保留消息。这里仅预测过滤和初次投递,不预测成员分配。
本工具一次只测试一个过滤器,无法根据多个订阅、QoS 与会话状态判断最终收到几份。请在实际 Broker 上验证重叠订阅的投递行为。
MQTT 没有独立的层级数上限,但单个 Topic 或过滤器的 UTF-8 编码最多 65,535 字节。此页另外限制最多 1,000 个主题行,超出会明确报错。
还有没解开的匹配问题?