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