使用Mosquitto代理,我有一个发布者,有时可能会向不同的客户发送重复的消息主题。客户端是并非总是在线的设备,因此当它们连接到代理时,它们需要能够获取所有已保留的消息。我们观察到的是,当客户端连接时,所有消息都会流过,但如果它断开连接然后重新连接,则只有最新的消息副本到达。
我们的设置是Qos 1和retain = true。 conf设置没有allow_duplicate_messages,因此默认值为true。
我们可以采取哪些措施来保留所有邮件。
答案 0 :(得分:1)
您对保留会话的保留消息感到困惑。
当客户端正常重新连接时,将仅传递使用保留位设置发布的最后一条消息。
如果您希望在客户端离线时发送所有消息(无论保留的位是否已设置),则需要使用持久会话。
可以找到持久会话的详细说明here,但简短版本如下:
连接时(初始连接和重新连接),您需要连接clean_session连接选项设置为false