Skip to content

第三方 MQTT 转发

当前版本通过 Broker + 转发器(Forwarder) 将 ThinkLink 消息转发到第三方 MQTT Broker。

无需在设备侧开启任何“第三方转发”开关,也无需在“服务器配置”中配置任何第三方平台。旧版本中的这两处配置已经停用。只需配置 Broker,并开启对应的转发器规则;匹配订阅 Topic 的消息会自动转发。

典型数据流如下:

text
ThinkLink 内部 Broker(AS 或 ThinkLink)
        ↓ Source Broker / Subscription Topic
转发器规则(可选 JavaScript 转换)
        ↓ Target Broker
第三方 MQTT Broker(Customize)

1. 创建 Broker 连接

进入 高级功能 → Broker。一个转发规则通常需要一个来源连接和一个目标连接。

来源 Broker

按需要选择以下内部类型之一:

  • AS:ThinkLink Application Server 的 MQTT 消息。
  • ThinkLink:经过 ThinkLink 平台处理的消息。

内部 Broker 的地址和租户凭据由平台自动填写,无需前往服务器配置页面获取或维护。

第三方目标 Broker

新增一个 Customize 类型的 Broker,并填写第三方服务商提供的信息:

  • 名称和启用状态。
  • MQTT URL,例如 mqtt://host:1883mqtts://host:8883
  • 用户名和密码(第三方要求时)。
  • CA 证书、客户端证书等 TLS 信息(第三方要求时)。

保存并启用后,先检查 Broker 列表中的运行状态。连接正常时应为 RUNNING;若出现 ERROR,查看 ErrMsg 并检查 URL、端口、凭据、证书和网络连通性。

2. 创建并开启转发器

进入 高级功能 → 转发器 → 新增,填写:

字段说明
名称转发规则名称
启用开启后规则才会订阅和转发消息
Source Broker要订阅的来源 Broker
Target Broker要发布到的目标 Broker
Subscription Topic来源 Broker 上的订阅 Topic,支持 MQTT 的 +# 通配符
Custom Script可选;转换 Topic、消息内容或 retain 选项
备注 / 提交说明可选;用于说明规则和版本变更

保存并开启转发器后,所有匹配 Subscription Topic 的消息都会自动发送到 Target Broker,设备侧不需要做任何额外设置。

Source Broker 和 Target Broker 不允许同时选择 AS/ThinkLink 内部类型,以避免无意义的内部循环。常见的第三方转发组合是:

text
Source Broker = AS 或 ThinkLink
Target Broker = Customize

3. 可选:转换脚本

不配置脚本时,转发器保留原 Topic 和原消息内容。需要适配第三方数据格式时,可使用以下入口函数:

javascript
function forwardScript({ topic, msg, org_params }) {
  if (!msg?.telemetry_data) return null

  return {
    topic: `${org_params.target_topic_prefix}/${msg.device_id}`,
    option: {
      retain: false
    },
    msg: {
      temperature: msg.telemetry_data.T,
      humidity: msg.telemetry_data.H
    }
  }
}

输入参数:

参数类型说明
topicstring收到消息时的原始 MQTT Topic
msgObject解析后的消息内容
org_paramsObject只读组织参数,可在 系统管理 → 服务器配置 → 组织参数 中维护共享常量;这里不是第三方转发开关或 Broker 配置

返回对象支持:

字段类型说明
topicstring发布到目标 Broker 的 Topic
msgObject发布的消息内容
optionObject可选 MQTT 发布选项,例如 { retain: true }

返回 null 或不返回内容可丢弃该消息。

4. 版本历史和公共转发器

每次保存转发器脚本都会产生版本快照,可在编辑器中查看详情或还原。还原会生成一个新的版本记录,不会删除原有历史。

系统平台可以维护公共转发器。公共规则在租户侧可见但只读;选择具体组织时,规则可以引用该组织的 Broker 和 org_params。只有选择 Source Broker 后,Subscription Topic 才为必填项。

5. 排障顺序

  1. 确认来源和目标 Broker 均已启用,目标 Broker 状态为 RUNNING
  2. 检查 ErrMsg、主机、端口、账号密码和 TLS 证书。
  3. 确认转发器本身已启用。
  4. 确认 Subscription Topic 与实际消息 Topic 匹配。
  5. 暂时关闭自定义脚本,确认原消息能否直通;随后再排查脚本返回值。