协议校验

MQTT Topic 匹配器

检查 Topic Filter 是否符合 MQTT 通配符规则,并确认它是否匹配目标 Topic Name。

Topic 匹配器

上线前检查通配符 Filter 是否正确。

在发布设备代码、Broker ACL、仪表盘或规则引擎前,用 Topic Matcher 检查 MQTT 通配符规则。

通配符规则

MQTT 通配符简单,但很容易误用。

`+` 匹配一个 Topic 层级,`#` 只能在最后一层匹配多个层级。Topic Name 本身不能包含通配符。

  • `factory/+/temperature` 只匹配一个中间层
  • `factory/#` 匹配 factory 下所有后代
  • `factory/#/temperature` 无效
  • 不以 `$` 开头的 Filter 不匹配 `$SYS`
使用场景

Filter 经常会变成权限。

Topic Filter 往往会被复制到固件、Dashboard、流处理和 ACL 中。一个通配符错误可能暴露过多数据,也可能漏掉关键遥测。

  • 设计租户安全的 Topic Tree
  • 测试 Dashboard 订阅
  • 审查 Broker ACL
  • 部署前确认规则引擎输入
命名治理

好的 Topic 设计让测试更可靠。

建议使用 tenant、product、device、signal、event type 等稳定层级,避免把多个含义塞进单层字符串。

  • 保持 Topic 层级稳定
  • 设备 ID 避免包含斜杠
  • $SYS 只用于系统指标
  • 单独文档化 Retained Topic