CoderTools

MQTT主题测试器

验证MQTT订阅模式,测试主题匹配规则

使用 + 表示单层通配符,# 表示多层通配符

每行输入一个主题,用于测试是否匹配订阅模式

快捷示例

测试结果

请输入订阅模式和测试主题

匹配
不匹配

通配符参考

+ 单层通配符

精确匹配其位置的一个主题层级。

sensor/+/temp ✓ sensor/room1/temp
sensor/+/temp ✗ sensor/room1/sub/temp

# 多层通配符

匹配任意数量的层级。必须作为模式的最后一个字符。

sensor/# ✓ sensor/a/b/c
home/+/# ✓ home/room/temp/value

MQTT主题模式指南

什么是MQTT主题?

MQTT主题是用于过滤消息的UTF-8字符串。它们具有层级结构,以斜杠(/)分隔各层级。主题区分大小写,可以包含几乎任何字符。

主题结构

典型的MQTT主题遵循层级结构,如'building/floor/room/sensor/type'。这允许使用通配符进行灵活的订阅模式匹配。

最佳实践

  • 使用有意义的、描述性的主题名称,反映数据层级结构
  • 避免使用前导斜杠,因为它会创建空的首层
  • 保持主题名称简短合理,以减少带宽使用
  • 使用小写字母和连字符保持命名一致性

常见问题

+ 和 # 通配符有什么区别?

+ 通配符精确匹配一个主题层级(例如 'sensor/+/temp' 匹配 'sensor/kitchen/temp'),而 # 可以匹配任意数量的层级,且必须是最后一个字符(例如 'home/#' 匹配 'home'、'home/living'、'home/living/light')。

发布消息时可以使用通配符吗?

不可以,通配符(+ 和 #)只能用于订阅主题过滤器。发布消息时必须指定不包含任何通配符的确切主题名称。

MQTT 主题区分大小写吗?

是的,MQTT 主题区分大小写。'Home/Temperature' 和 'home/temperature' 被视为完全不同的主题。请在主题命名规范中始终保持大小写一致。

快捷菜单

暂无访问记录