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
}
}
}