In der Regel müssen Sie ein Protokoll mit starken Garantien dafür auswählen, ob der Client Pakete / Nachrichten in welcher Reihenfolge empfängt und ob eine Duplizierung zulässig ist.
Für ein Netzwerk von IoT-Geräten, die kleine bis mittelgroße Nachrichten aneinander senden, scheint die Verwendung von MQTT mit Quality of Service 2 gut zu Ihrem Anwendungsfall zu passen. Wie im HiveMQ-Link angegeben:
Die höchste QoS ist 2, es wird garantiert, dass jede Nachricht nur einmal vom Gegenstück empfangen wird. Es ist das sicherste und auch langsamste Service-Level. Die Garantie wird durch zwei Hin- und Rückflüsse zwischen Sender und Empfänger gewährleistet.
Beachten Sie, dass QoS 2 die Reihenfolge der Nachrichten beibehält und, wie angegeben, doppelte Nachrichten verhindert.
Die Verwendung von MQTT QoS 2 ist im Vergleich zur Standard-QoS 0 (die einer Feuer-und-Vergessen-Nachricht ähnelt) mit einem erheblichen Aufwand verbunden. Wenn sie den Broker nicht erreicht, wird die Nachricht nicht erneut gesendet und ist für immer verschwunden ) - QoS 2 erfordert 4 Nachrichten ( PUBLISH
vom Absender, PUBREC
vom Broker, PUBREL
vom Client, PUBCOMP
vom Broker), sodass die Verarbeitung im Allgemeinen länger dauert, mehr Ressourcen benötigt (daher längere Funkübertragungen und mehr Stromverbrauch auf eingeschränkten Endpunkten).
Eine MQTT QoS 2-Nachricht wird nur wiederholt vom Absender erneut gesendet, bis sie eine Bestätigung vom Broker erhält. Daher sollte Ihre Nachricht möglicherweise auch dann durchkommen, wenn Ihre Verbindung nicht perfekt ist.
Ob ein themenbasiertes Publish-Subscribe- Protokoll für Ihren Anwendungsfall geeignet ist, liegt bei Ihnen. Der Wikipedia-Artikel könnte Ihnen helfen, sich ein Bild zu machen.