3.3. 使用带有网络连接的 awx
代理支持 MCG v3.1.1 和 v5.0(以及旧的 v3.1 代码消息格式)。PlacementBinding 是服务器、发布/订阅消息协议的轻量级客户端。替代消息传递开销和网络流量,以及客户端的代码占用量。出于这些原因,include 非常适合约束其设备,如传感器和传感器,并很快成为物联网(IoT)的事实标准通信协议。
流程
-
打开 &
lt;broker_instance_dir> /etc/broker.xml
配置文件。 - 添加接受者,并启用了 IFL 协议。例如:
<acceptors> <acceptor name="mqtt">tcp://localhost:1883?protocols=MQTT</acceptor> ... </acceptors>
PlacementBinding 随附一些有用的功能,其中包括:
- 服务质量
- 每个消息都可以定义与之关联的服务质量。代理将尝试在定义的最高服务质量时向订阅者发送消息。
- 保留的消息
- 可为特定地址保留消息。此地址的新订阅者接收最后一封保留的消息,然后任何其他消息,即使保留的消息是在客户端连接之前发送的。
- 通配符订阅
- LAST 地址是层级的,类似于文件系统的层次结构。客户可以订阅特定主题或层次结构的整个分支。
- 将消息
- 客户端可以将"will message"设置为其连接数据包的一部分。如果客户端异常断开连接,代理会将消息发布到指定的地址。其他订阅者收到一条信息,并可以相应地作出反应。
有关 IFL 协议的更多信息,请参阅规格。
3.3.1. 配置 paper 属性
您可以将键值对附加到 IFL 接受器以配置连接属性。例如:
<acceptors> <acceptor name="mqtt">tcp://localhost:1883?protocols=MQTT;receiveMaximum=50000;topicAliasMaximum=50000;maximumPacketSize;134217728; serverKeepAlive=30;closeMqttConnectionOnPublishAuthorizationFailure=false</acceptor> ... </acceptors>
- receiveMaximum
-
通过在需要确认前,指定代理可以从客户端接收的 QoS 1 和 2 信息来启用流控制。默认值为
65535
。值-1
将禁用从客户端到代理的流控制。这与将值设为 0 的效果相同,但会减少 CONNACK 数据包的大小。 - topicAliasMaximum
-
为客户端指定代理支持的最大别名数。默认值为
65535
。值 -1 可防止代理向客户端发出主题别名限制。这与将值设为 0 的效果相同,但会减少 CONNACK 数据包的大小。 - maximumPacketSize
-
指定代理可以从客户端接受的最大数据包大小。默认值为
268435455
。值 -1 可防止代理向客户端发送最大数据包大小,这意味着在传入的数据包大小上不会强制实施限制。 - serverKeepAlive
-
指定代理保持不活跃客户端连接的持续时间。只有在配置的值小于为客户端配置的 keep-alive 值,或者为客户端配置的值是 0。默认值为
60
秒。值-1
表示代理始终接受客户端持续值(即使该值为 0)。 - closeMqttConnectionOnPublishAuthorizationFailure
-
默认情况下,如果因为缺少授权而导致 PUBLISH 数据包失败,代理会关闭网络连接。如果您希望代理发送正确认而不是关闭网络连接,请将
closeMqttConnectionOnPublishAuthorizationFailure
设置为false
。