Skip to content

概览

MQTT 是一种为物联网设备和应用程序设计的消息协议,采用发布与订阅模型,具有轻量、高效、可靠的,支持实时通讯等优点。 MQTT 非常适合资源受限的环境,特别是需要高效使用电力和带宽的场景。

Neuron 支持 MQTT 作为其通讯协议之一。 Neuron MQTT 插件允许用户快速构建使用 MQTT 协议的物联网应用程序,可以在设备和云之间进行通讯。 使用 MQTT 插件,开发人员还可以向 IoT 设备发布消息,触发设备操作,例如打开或关闭灯、电机或者其他设备。 该插件还支持使用身份验证和加密通讯协议进行安全通讯,确保数据的安全性和隐私性。

参数

以下是使用 MQTT 插件配置节点时可用的参数:

字段说明
client-idMQTT 通信的客户端 id,必填。
upload-topic订阅数据上报的主题,必填。
format上报数据的 JSON 格式,必填。有 VALUES 格式和 TAGS 格式。
cache-mem-size通信失败时内存消息缓存大小 (MB) 限制,必填。范围在 [0, 1024] 。 不能大于 cache-disk-size
cache-disk-size通信失败时磁盘消息缓存大小 (MB) 限制,必填。范围在 [0, 10240] 。设为非零值时, cache-mem-size 也须为非零值。
hostMQTT Broker 地址,必填。
portMQTT Broker 端口号,必填。
username连接到 Broker 时使用的用户名,选填。
password连接到 Broker 时使用的密码,选填。
ssl是否启用 SSL,选填,默认不启用。
caCA 证书,启用 SSL 时必填。
cert客户端证书,使用 SSL 双向认证时必填。
key客户端密钥,使用 SSL 双向认证时必填。
keypass客户端密钥密码,使用 SSL 双向认证时选填。

数据上报

在订阅了南向节点之后,Neuron 的 MQTT 插件将收集到的数据以 JSON 形式发布到由 upload-topic 参数指定的主题上。 上报数据的确切格式由 format 参数控制。 有 tags-formatvalues-format 两种格式。

更多详细信息,请参阅 MQTT API

离线数据缓存

离线数据缓存是 MQTT 插件特有的功能,在网络发生中断时可将数据存储在本地, 当网络连接恢复时,MQTT 插件可以将数据同步到服务器。 这项功能在网络连接不稳定的场景中非常有用,可以增强构建在 Neuron 上的应用程序的鲁棒性和可靠性。

离线数据缓存由 cache-mem-sizecache-disk-size 参数控制。 cache-mem-size 参数指定内存缓存大小(单位为兆字节),最大允许缓存大小为 1GB 。 cache-disk-size 参数指定磁盘缓存大小(单位为兆字节),最大允许缓存大小为 10GB 。 当网络中断发生时,MQTT 插件首先将数据存储在内存缓存中,并且仅当内存缓存已满时才将数据刷新到磁盘缓存中。 当网络恢复连接时,MQTT 插件将以 FIFO(先进先出)的顺序将缓存的数据发布到服务器上。

您可以通过将 cache-mem-sizecache-disk-size 都设置为零来禁用离线数据缓存。

数据安全

SSL/TLS(安全套接字层/传输层安全)是一种安全协议,用于加密网络设备之间的通信通道。 它能够在不安全的网络(例如互联网)上使通信变得安全。 MQTT over SSL/TLS 是一种通过 SSL/TLS 加密传输 MQTT 消息的安全方法,用于在客户端和 MQTT 服务器之间传输数据。 这可以确保客户端和服务器之间传递的所有数据都是加密且安全的。

Neuron 的 MQTT 插件支持 MQTT over SSL。要启用 SSL 加密,请在配置节点时打开 ssl 参数, 并提供证书授权机构的证书作为 ca 参数。 要连接到的服务器的证书应由提供的证书授权机构颁发。 如果使用双向身份验证,还应通过 certkey,和 keypass 参数分别提供客户端证书,密钥文件,和密钥文件密码。

示例

请参见快速上手示例 连接 MQTT