emqx_auto_subscribe_schema { auto_subscribe.desc: """设备登录成功之后,通过预设的订阅表示符,为设备自动完成订阅。支持使用占位符。""" auto_subscribe.label: """自动订阅""" nl.desc: """缺省值为0, MQTT v3.1.1:如果设备订阅了自己发布消息的主题,那么将收到自己发布的所有消息。 MQTT v5:如果设备在订阅时将此选项设置为 1,那么服务端将不会向设备转发自己发布的消息""" nl.label: """No Local""" qos.desc: """缺省值为 0,服务质量, QoS 0:消息最多传递一次,如果当时客户端不可用,则会丢失该消息。 QoS 1:消息传递至少 1 次。 QoS 2:消息仅传送一次。""" qos.label: """服务质量""" rap.desc: """缺省值为 0,这一选项用来指定服务端向客户端转发消息时是否要保留其中的 RETAIN 标识,注意这一选项不会影响保留消息中的 RETAIN 标识。因此当 Retain As Publish 选项被设置为 0 时,客户端直接依靠消息中的 RETAIN 标识来区分这是一个正常的转发消息还是一个保留消息,而不是去判断消息是否是自己订阅后收到的第一个消息(转发消息甚至可能会先于保留消息被发送,视不同 Broker 的具体实现而定)。""" rap.label: """Retain As Publish""" rh.desc: """指定订阅建立时服务端是否向客户端发送保留消息, 可选值 0:只要客户端订阅成功,服务端就发送保留消息。 可选值 1:客户端订阅成功且该订阅此前不存在,服务端才发送保留消息。毕竟有些时候客户端重新发起订阅可能只是为了改变一下 QoS,并不意味着它想再次接收保留消息。 可选值 2:即便客户订阅成功,服务端也不会发送保留消息。""" rh.label: """Retain Handling""" topic.desc: """订阅标识符,支持使用占位符,例如 client/${clientid}/username/${username}/host/${host}/port/${port} 必填,且不可为空字符串""" topic.label: """订阅标识符""" }