2016-04-26 24 views
0

使用Mosquitto代理,我有一個發佈者有時可能會向各種客戶端發送重複郵件主題。客戶端是不總是聯機的設備,所以當他們連接到代理時,他們需要能夠獲得所有保留的消息。我們觀察到的是,當客戶端連接時,所有消息都會流過,但如果它斷開連接並重新連接,則只有最新的消息重複到達。是否存在用於保留重複郵件的Mosquitto設置

我們的設置是Qos 1並且retain = true。 conf設置沒有allow_duplicate_messages,因此默認值爲true。

有什麼我們可以做的,以保留所有的信息。

回答

1

您對持久會話的保留消息感到困惑。

當客戶端正常重新連接時,只有最後發佈的帶有保留位集的消息纔會被髮送。

如果您想要在客戶端離線時發送所有消息(不管保留位是否設置),那麼您需要使用持久會話。

持久性會話的詳細描述,可以發現here但短期的版本如下:

您需要設置爲false的clean_session連接選項可在連接兩個倍(初始連接,重新連接)連接

+1

重新連接時,您還需要使用相同的客戶端ID。 – ralight

相關問題