2016-09-15 24 views
0

我正在與Paho Java上的項目合作。從代理收到的消息會發送到處理它們的API,但是此過程可能會失敗或需要很長時間。我想利用MQTT確認系統,並在這種情況下阻止發送ACK,以便經紀人在一段時間後重新發送相同的消息。 Paho有可能嗎?如何防止Paho在處理來自代理的消息後發送ACK?

問候。

+0

這是一個糟糕的主意,QOS握手在那裏確保交付恰當地發生,而不是其他一些過程完成的指標。如果您需要通知終端進程已完成,請在有效負載中包含消息標識併發送新消息 – hardillb

回答

1

沒有辦法保證這會起作用。消息重試是特定於實現的。

的MQTT V3.1.1的Section 4.4規範規定

當客戶端重新連接與CleanSession設置爲0,無論是客戶機 和服務器必須重新發送任何未確認的數據包PUBLISH(其中的QoS 0)和PUBREL數據包使用其原始數據包標識符[MQTT-4.4.0-1]。 這是唯一需要客戶端或服務器 才能重新發送消息的情況。

重點是我的。

我見過的趨勢是實現去除除了重新連接時的消息重試。

相關問題