MQTT Pub¶
MQTT Pub 节点建立一个 MQTT 客户端,将数据推送到第三方 MQTT 服务器。
节点类型¶
External。
输入和输出能力¶
该节点具有多个入口点,可具有 0 或 1 个出口点。输入和输出可以是任何格式。
推送信息的 topic 将包含在 metadata 中。后续可使用表达式 ${metadata.topic}
获取。
节点属性¶
提供 MQTT 信息
从代理配置获取
名称
该节点的名称。
配置方式
配置 MQTT 服务器的方式。支持的配置方式如下。
- 提供 MQTT 信息:提供 MQTT 服务器的相关信息。如果选中此项,则需要填写以下字段。
- 主机:MQTT 服务器的 URL。
- 端口:MQTT 服务器的端口。
- 鉴权:验证该节点所发出请求所用的方法。其值如下所述。
- 匿名:无需鉴权。
- 用户名/密码:在鉴权请求中传递用户名/密码。如果选中此项,则必须填写以下字段。
- 用户名:客户端登录服务器所用的用户名。
- 密码:客户端登录服务器所用的密码。
- 单项认证:在 MQTT 客户端对从服务器获取的凭证进行鉴权时,使用加密通信。如果选中此项,则需要填写以下字段。
- 证书:由 MQTT 鉴权的、来自服务器的证书。
- 双向认证:在 MQTT 客户端和服务器对彼此的凭证进行鉴权时,使用加密通信。如果选中此项,则需要填写以下字段。
- 证书:由 MQTT 鉴权的、来自服务器的证书。
- 客户端证书:由 MQTT 服务器进行鉴权的客户端证书。
- 客户端证书密钥:需要鉴权的客户端证书密钥。
- 客户端密码:需要鉴权的客户端密码。
- 从代理配置获取:从下拉框选择一个代理作为 MQTT 服务器。更多信息,参见 代理配置。
Topic
推送信息的主题。只能指定 1 个主题。
QoS
定义发布 MQTT 服务器消息时可使用的最大消息服务质量等级(Quality of Service,QoS),从低到高分为 0、1、2 三个等级,可以根据实际需求进行配置。默认值是 2。
QoS | 0 | 1 | 2 |
---|---|---|---|
服务器(生产者) | 仅发送一条消息,不储存消息,也不确认接收。 | 至少发送一条消息,确认消息接收。如果没有收到应答,将重复发送消息。 | 仅发送一条消息,发送消息后储存消息,确认接收后将二次确认,再将消息从队列中删除。 |
客户端(消费者) | 可能收到一条消息,或无法收到消息,不返回任何应答。 | 至少收到一条消息,收到消息后返回应答。 | 仅收到一条消息,收到消息后返回应答,二次确认后消息传输完成。 |
优点 | 传输速度最快,占用资源最少。 | 性能最优,消息不会丢失。 | 消息不会丢失,且只会收到一次。 |
不足 | 消息容易丢失。 | 客户端可能会重复收到同一条消息。 | 传输速度最慢,占用资源最多。 |
推荐场景 |
|
|
|
清除先前会话
开启后,每当客户端重新连接到服务器时,将清除客户端和服务器之间的先前会话。
描述
该节点的描述。
测试连接
你可以选择 测试连接 按钮来测试 MQTT 连接。
使用限制¶
- 最大入口点数:100
- 连接数:1
- 最大 topic 数:1
- 由于 MQTT 服务器并非 EnOS 管理,EnOS 不保证每次连接都能成功,连接问题可能是由于服务器停机或其他 EnOS 无法控制的因素造成。
示例¶
输入示例¶
JSON 对象作为输入的示例:
{
"MetaData": {},
"Body": {
"externalId": "externalId",
"timestamp": 24214324324,
"measurepoints": {
"speed": 32,
"heat": 40
}
}
}
输出示例¶
{
"MetaData": {
"topic": "officeTemp"
},
"Body": {
"externalId": "externalId",
"timestamp": 24214324324,
"measurepoints": {
"speed": 32,
"heat": 40
}
}
}