You need to enable JavaScript to run this app.
文档中心
云原生消息引擎

云原生消息引擎

复制全文
下载 pdf
MQTT 高级特性
主题重写
复制全文
下载 pdf
主题重写
MQTT 支持主题重写功能,根据用户配置的重写规则在客户端订阅、发布时将原有主题重写为新的目标主题。
背景信息
在某些场景中,修改业务主题可能会非常困难,此时可以使用主题重写功能。通过设置主题重写规则,在客户端订阅、发布时将原有主题重写为新的目标主题。
启用主题重写后,MQTT 将使用数据包中的主题来依次匹配重写规则中的原始主题。匹配成功之后,正则表达式提取原始主题中的信息,然后用目标表达式替换并生成一个新的主题。
注意事项
  • MQTT 会按照重写规则的配置顺序来执行主题重写。当一个主题可以同时匹配多个重写规则的原始主题时,也只使用第一个匹配的规则来重写该主题。
  • 如果规则中的正则表达式与 MQTT 数据包的主题不匹配,则重写失败,其他规则将不会被用来重写。
创建重写规则
  1. 在 Dashboard 的导航栏选择管理 > MQTT 高级特性 > 主题重写。
  1. 单击页面右上角的添加
  1. 在弹出的对话框中,配置主题重写规则参数,然后单击添加
  • 图片
  • 参数
    说明
    动作类型
    主题重写规则的匹配动作。
    • Publish:匹配 PUBLISH 报文携带的主题。
    • Subscribe:匹配 SUBSCRIBE、UNSUBSCRIBE 报文携带的主题。
    • Publish & Subscribe:对 PUBLISH、SUBSCRIBE 和 UNSUBSCRIBE 报文携带的主题都生效。
    原始主题
    设置原始主题或通配符表达式。
    正则表达式
    设置主题的正则表达式。
    正则表达式用来提取原始主题中的信息。
    目标主题
    设置目标主题或通配符表达式。
  1. 查看重写规则。
  • 支持编辑和删除操作,请按需执行。
  • 图片
示例说明
假设您已经配置了多个主题重写规则,配置如下:
规则①
  • 动作类型:Subscribe
  • 原始主题:test/+/topic/#
  • 正则表达式:^test/(.+)/topic/(.+)$
  • 目标主题:test/topic/$2
规则②
  • 动作类型:Subscribe
  • 原始主题:doc/test/+
  • 正则表达式:^doc/test/(\d+)$
  • 目标主题:mqtt/test/$1
如果您在客户端订阅的主题有test/1test/mqtt/topic/1doc/test/1,实际订阅的主题描述如下:
  • test/1主题不能匹配任何重写规则的原始主题,所以不执行主题重写规则,实际订阅的主题就为test/1
  • test/mqtt/topic/1主题匹配到规则①中的原始主题,MQTT 执行主题重写规则,通过正则表达式匹配到元素 [mqtt、1],将匹配的第二个元素带入目标主题 test/topic/$2,所以最后实际订阅主题为test/topic/1
  • doc/test/1主题匹配到规则②中的原始主题,执行主题重写规则,经过正则表达式替换,最后实际订阅主题为mqtt/test/1
最近更新时间:2025.08.04 17:30:03
这个页面对您有帮助吗?
有用
有用
无用
无用