数据转发到另一 Topic

最近更新时间:2025-12-29 15:26:13

我的收藏

功能概述

将通过规则提取出来的消息字段转发给另外一个服务时,即可实现 Topic 间通信。
注意:
一个 Topic 可接收的最大消息条数是:20条/秒。

前提条件

已有可使用的实例,可参见 实例管理
已创建规则,具体操作可参见 创建规则

配置步骤

1. 登录 物联网开发平台控制台,单击目标实例,选择左侧菜单栏数据流转 > 规则引擎
2. 单击需要配置的规则名称,在规则详情页面,单击添加行为操作

3. 在弹出的“添加规则”窗口,填写相关信息。
选择行为类型为“数据转发到另一个Topic(Republish)”。
选择相应项目、产品及设备。
选择要转发到的另一个 Topic 类型及名称。

4. 单击保存,物联网开发平台即可将设备上报数据发转至该 Topic。

配置案例

设备1(这里命名:Test) 收到的物模型数据要转发至设备3(这里命名:Tese3),让设备3也能收到设备1的数据。示例操作如下:
1. 在规则详情页单击筛选数据右侧的编辑,配置规则引擎如下图所示。字段推荐填 '*' ,具体字段说明可参考 数据处理 ;然后选择目标设备1进行转发。

2. 在行为操作中添加接收方设备3的配置选项,如下图所示:

3. 保存后重新检查筛选数据的 Topic 行为操作的 Topic,确保设备数据无误之后转发才能成功。

4. 这里设备1设备3用 MQTTX 工具来进行模拟上线和订阅,具体操作参考 物模型 Topic 消息通信

4.1 如图上所示,设备1和设备3的 MQTTX 上线后分别填写对应的 Topic,确保消息发布和接收无误。
设备属性发布请求 Topic: $thing/up/property/{ProductID}/{DeviceName}
设备属性订阅响应 Topic: $thing/down/property/{ProductID}/{DeviceName}
4.2 设备1发布物模型消息后(如下图示例),查看“code”状态为0表示消息成功,报其他数字可参考 错误码 排查。
{
"method":"report",
"clientToken":"123",
"params":{
"dianliang":33
}
}
4.3 启用规则引擎后,设备3也会收到设备1转发的订阅消息,若未收到需重新检查第2步和第3步。

转发消息服务质量等级

消息从源 Topic 转发到其他 Topic 时消息服务质量等级不会变化。
设备端发布的消息服务质量等级为 QOS0 时,则规则引擎将按照 QOS0 的消息进行转发;发布的消息服务质量等级为 QOS1 时,则按照 QOS1 进行转发。
转发的消息服务质量等级为0时,若转发失败则消息会被丢弃;转发的消息服务质量等级为1,若消息转发失败则会进行转发重试。重试按照3s,6s,9s的时间间隔依次进行三次,若三次重试均失败则将消息保存在离线消息队列。