3.3. 在网络连接中使用 MQTT
代理支持 MQTT v3.1.1(以及较旧的 v3.1 代码消息格式)。MQTT 是服务器的轻量级客户端,发布/订阅消息传递协议。MQTT 减少了消息传递开销和网络流量,以及客户端的代码占用。因此,MQTT 非常适合传感器和传感器等受限设备,并且正在迅速成为物联网(IoT)实际上的标准通信协议。
流程
-
打开
<broker_instance_dir>/etc/broker.xml
配置文件。 - 添加启用了 MQTT 协议的接收器。例如:
<acceptors> <acceptor name="mqtt">tcp://localhost:1883?protocols=MQTT</acceptor> ... </acceptors>
MQTT 随附一些有用的功能,包括:
- 服务质量
- 每条消息都可以定义与之关联的服务质量。代理将尝试以最高服务质量级别向订阅者发送消息。
- 保留的消息
- 可以针对特定地址保留消息。该地址的新订阅者会在任何其他消息之前接收最后保留的消息,即使保留的消息是在客户端连接之前发送的。
- 通配符订阅
- MQTT 地址具有层次结构,类似于文件系统的层次结构。客户端能够订阅特定主题或层次结构的整个分支。
- 将消息
- 客户端可以将"will message"设置为其连接数据包的一部分。如果客户端正常断开连接,代理会将 will 消息发布到指定的地址。其他订阅者将收到该邮件,并可以相应做出反应。
有关 MQTT 协议的最佳信息来源是在规范中。MQTT v3.1.1 规范可以从 OASIS 网站 下载。