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/1、test/mqtt/topic/1、doc/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
这个页面对您有帮助吗?
有用
有用
无用
无用