MQTT 代理订阅

    打开 ,点击左侧的 “模块” 选项卡,选择添加:

    image-20200927213049265

    选择 MQTT 代理订阅模块

    配置相关参数

    image-20200927213049265

    点击添加后,模块添加完成

    • 服务端可以向客户端发送的应用消息的最大 QoS 等级。

    • RAP( Retain As Published )

      向此订阅转发应用消息时,是否保持消息被发布时设置的保留(RETAIN)标志。

      • RAP 值为 0 时,表示向此订阅转发应用消息时把保留标志设置为 0。

    • RH( Retain Handling )

      当订阅建立时,是否发送保留消息

      • 0:订阅建立时发送保留消息

      • 1:订阅建立时,若该订阅当前不存在则发送保留消息

      • 2:订阅建立时不要发送保留消息

    在配置代理订阅的主题时,EMQX 提供了 和 %u 两个占位符供用户使用,EMQX 会在执行代理订阅时将配置中的 %c%u 分别替换为客户端的 Client IDUsername,需要注意的是,%c 和 必须占用一整个主题层级。

    例如,添加上文图中的规则后:配置 A、B 两个客户端,客户端 A 的 Client IDtestclientAUsernametesterA,客户端 B 的 Client IDtestclientB, 为 testerB

    A 客户端使用 MQTT V3.1.1 协议连接 EMQX,根据上文的配置规则,代理订阅功能会主动帮客户端订阅 QoS 为 1 的 client/testclientA 和 QoS 为 2 的 user/testerA 这两个主题,因为连接协议为 MQTT V3.1.1,所以配置中的 No Local、Retain As Published、Retain Handling 不生效。