开源的5.1.6版本,有两个地方可以设置启用保留消息,请问有什么区别
感谢反馈,确实有误导。简单来说如果需要启用保留消息的话,两者都需要开启。
从配置对应上来说,通用->启用保留消息 控制的是
mqtt {
retain_available = true
...
}
它表示协议层的保留消息是否启用,如果 MQTT 客户端使用 v5.0 协议链接到 EMQX,EMQX 会把改标记位,通过链接确认报文 CONNACK 发送到客户端,表示 Broker 是否支持 Retain 特性。见 5.0 协议规范 - 3.2.2.3.5 Retain Available
另外, 如果关闭该标识,但客户端仍发送 Retain 消息,EMQX 直接断开链接并回复 0x9A
的错误码
对于后者 保留消息->启用保留消息,控制的是配置:
retainer {
enable = true
...
}
它是 EMQX 保留消息存储功能是否启用的配置,停用则不存储保留消息。