第三方 MQTT 转发
当前版本通过 Broker + 转发器(Forwarder) 将 ThinkLink 消息转发到第三方 MQTT Broker。
无需在设备侧开启任何“第三方转发”开关,也无需在“服务器配置”中配置任何第三方平台。旧版本中的这两处配置已经停用。只需配置 Broker,并开启对应的转发器规则;匹配订阅 Topic 的消息会自动转发。
典型数据流如下:
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:1883或mqtts://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 内部类型,以避免无意义的内部循环。常见的第三方转发组合是:
Source Broker = AS 或 ThinkLink
Target Broker = Customize3. 可选:转换脚本
不配置脚本时,转发器保留原 Topic 和原消息内容。需要适配第三方数据格式时,可使用以下入口函数:
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
}
}
}输入参数:
| 参数 | 类型 | 说明 |
|---|---|---|
topic | string | 收到消息时的原始 MQTT Topic |
msg | Object | 解析后的消息内容 |
org_params | Object | 只读组织参数,可在 系统管理 → 服务器配置 → 组织参数 中维护共享常量;这里不是第三方转发开关或 Broker 配置 |
返回对象支持:
| 字段 | 类型 | 说明 |
|---|---|---|
topic | string | 发布到目标 Broker 的 Topic |
msg | Object | 发布的消息内容 |
option | Object | 可选 MQTT 发布选项,例如 { retain: true } |
返回 null 或不返回内容可丢弃该消息。
4. 版本历史和公共转发器
每次保存转发器脚本都会产生版本快照,可在编辑器中查看详情或还原。还原会生成一个新的版本记录,不会删除原有历史。
系统平台可以维护公共转发器。公共规则在租户侧可见但只读;选择具体组织时,规则可以引用该组织的 Broker 和 org_params。只有选择 Source Broker 后,Subscription Topic 才为必填项。
5. 排障顺序
- 确认来源和目标 Broker 均已启用,目标 Broker 状态为
RUNNING。 - 检查
ErrMsg、主机、端口、账号密码和 TLS 证书。 - 确认转发器本身已启用。
- 确认
Subscription Topic与实际消息 Topic 匹配。 - 暂时关闭自定义脚本,确认原消息能否直通;随后再排查脚本返回值。