2016-12-08 2 views
0

Weiß jemand, was der Watson IoT Broker tut, wenn er eine QoS1 o 2 Nachricht veröffentlicht und nicht die entsprechende Bestätigung vom Client erhält? Implementiert es eine Zeitüberschreitung (etwa 20 Sekunden) und sendet die Nachricht dann erneut? Es scheint, dass einige Broker dies tun, während andere die Nachricht nur bei einer neuen Verbindung zurücksenden (wenn Retain auf 1 gesetzt ist). Die MQTT-Spezifikation ist in diesem Punkt etwas vage.Watson IoT QoS1/2 Wiederholungen

Antwort

1

die Nachricht für den Kunden im Flug angesehen werden würde, dass sie nicht anerkannt hat, und diese Botschaft Nachlieferung wird nur auftreten, wenn dieser Client die Verbindung trennt und verbindet (aber nur, wenn der Kunde war sauber session = 0)

Für QoS1 und 2: Mindestens einmal (QoS1)

Mit Quality of Service Level 1 (QoS1) wird die Nachricht immer mindestens einmal gesendet. Wenn ein Fehler auftritt, bevor eine Bestätigung vom Absender empfangen wurde, kann eine Nachricht mehrmals gesendet werden. Die Nachricht muss lokal beim Absender gespeichert werden, bis der Absender eine Bestätigung erhält, dass die Nachricht vom Empfänger veröffentlicht wurde. Die Nachricht wird gespeichert, falls die Nachricht erneut gesendet werden muss.

genau einmal (QoS2)

Die "genau einmal" Qualität der Service-Level-2 (QoS2) ist die sicherste, aber langsamste Art der Übertragung. Die Nachricht wird immer genau einmal geliefert und muss auch lokal beim Absender gespeichert werden, bis der Absender eine Bestätigung erhält, dass die Nachricht vom Empfänger veröffentlicht wurde. Die Nachricht wird gespeichert, falls die Nachricht erneut gesendet werden muss. Mit der Qualität der Service-Level-2, eine anspruchsvolleres Handshaking und Quittierungssequenz wird als für die Stufe 1 verwendet wird, um sicherzustellen, dass Nachrichten nicht

MQTT keep alive Intervall

Die MQTT keep alive Intervall dupliziert werden, die in Sekunden gemessen wird , definiert die maximale Zeit, die ohne Kommunikation zwischen Client und Broker verstreichen kann. Der MQTT-Client muss sicherstellen, dass bei fehlender anderer Kommunikation mit dem Broker ein PINGREQ-Paket gesendet wird. Das Keep-Alive-Intervall ermöglicht sowohl dem Client als auch dem Broker das Erkennen, dass das Netzwerk ausgefallen ist, was zu einer unterbrochenen Verbindung führt, ohne dass auf das Erreichen der TCP/IP-Zeitüberschreitung gewartet werden muss.

Wenn Ihre MQTT-Clients der Watson IoT Platform gemeinsam genutzte Subskriptionen verwenden, kann der Wert für die Aufrechterhaltung des Intervalls nur zwischen 1 und 3600 Sekunden festgelegt werden. Wenn ein Wert von 0 oder ein Wert größer als 3600 angefordert wird, legt der Watson IoT Platform-Broker das Keep-Alive-Intervall auf 3600 Sekunden fest.

Rückmeldungen

Watson IoT-Plattform bietet eingeschränkte Unterstützung für das Feature beibehalten Nachrichten von MQTT Messaging. Wenn das Flag für beibehaltene Nachrichten in einer MQTT-Nachricht, die von einem Gerät, Gateway oder einer Anwendung an die Watson IoT Platform gesendet wird, auf "true" gesetzt ist, wird die Nachricht als eine nicht zurückgeschriebene Nachricht behandelt. Watson IoT Platform-Organisationen sind nicht berechtigt, gespeicherte Nachrichten zu veröffentlichen. Der Watson IoT Platform-Dienst setzt das Flag für beibehaltene Nachrichten außer Kraft, wenn es auf "True" festgelegt ist, und verarbeitet die Nachricht so, als ob das Flag für die beibehaltene Nachricht auf "False" festgelegt ist.

Verwandte Themen