2016-08-22 7 views
0

Ich habe ein Szenario, in dem Absender eine Nachricht zu einem Thema senden. Aber es gibt einen Client, der nie zuvor verbunden war, verbinden und abonnieren Sie das gleiche Thema. Wie kann er alle Nachrichten empfangen, die zuvor für den neu verbundenen Client zu diesem Thema vorhanden waren?Nachrichten in Mqtt Android

I cleanSession verwendet = false nichts passiert

ich die Rückmeldung true = verwendet. Dann wird nur die letzte Nachricht empfangen.

Antwort

0

Die kurze Antwort ist, dass Sie nicht können.

Der Broker wird Nachrichten nur für Clients in die Warteschlange stellen, die bereits Sitzungen haben (mindestens einmal mit cleanSession = false angemeldet).

Zurückgehaltene Nachrichten behalten nur die letzte zu diesem Thema gesendete Nachricht.

Wenn Sie historische Nachrichten wie Sie beschreiben, dann müssen Sie sie in einer Datenbank speichern und sie bitten, über einen anderen Mechanismus (zB http)

0

Der Broker speichern die zuletzt beibehalten Nachricht und die entsprechenden QoS für das Thema. Jeder Client, der ein Themenmuster abonniert, das mit dem Thema der beibehaltenen Nachricht übereinstimmt, erhält die Nachricht unmittelbar nach dem Abonnieren.

Für jedes Thema wird nur eine gespeicherte Nachricht vom Broker gespeichert. So können Sie nicht alle gespeicherten Nachrichten erhalten

Verwandte Themen