[AIX, Linux, Windows]

Lose Verbindung zwischen MQTT -Clients und IBM MQ -Anwendungen

Der Ablauf von Veröffentlichungen zwischen MQTT -Clients und IBM® MQ -Anwendungen ist flexibel verbunden. Veröffentlichungen können entweder von einem MQTT -Client oder einer IBM MQ -Anwendung stammen, und zwar in keiner festgelegten Reihenfolge. Die Veröffentlichungskomponenten und Subskribenten sind lose verbunden. Sie interagieren indirekt über Veröffentlichungen und Subskriptionen. Sie können auch direkt von einer IBM MQ -Anwendung aus Nachrichten an einen MQTT -Client senden.

MQTT -Clients und IBM MQ -Anwendungen sind in zwei Richtungen lose miteinander verbunden:
  1. Veröffentlichungskomponenten und Subskribenten sind durch die Zuordnung einer Veröffentlichung und einer Subskription zu einem Thema lose verbunden. Veröffentlichungskomponenten und Subskribenten haben normalerweise keine Kenntnis von der Adresse oder Identität der anderen Quelle einer Veröffentlichung oder Subskription.
  2. MQTT -Clients veröffentlichen, abonnieren, empfangen Veröffentlichungen und verarbeiten Empfangsbestätigungen in separaten Threads.

Eine MQTT -Clientanwendung wartet nicht, bis eine Veröffentlichung zugestellt wurde. Die Anwendung übergibt eine Nachricht an den MQTT -Client und setzt dann die Anwendung in ihrem eigenen Thread fort. Ein Zustellungstoken wird verwendet, um die Anwendung mit der Zustellung einer Veröffentlichung zu synchronisieren (siehe Zustellungstoken).

Nach der Übergabe einer Nachricht an den MQTT -Client hat die Anwendung die Möglichkeit, auf das Zustellungstoken zu warten. Anstatt zu warten, kann der Client eine Callback-Methode bereitstellen, die aufgerufen wird, wenn die Veröffentlichung an IBM MQzugestellt wird. Das Zustellungstoken kann auch ignoriert werden.

Abhängig von der Servicequalität, die der Nachricht zugeordnet ist, wird das Zustellungstoken sofort oder möglicherweise auch nach einer langen Zeit an die Callback-Methode zurückgegeben. Das Zustellungstoken kann sogar zurückgegeben werden, nachdem die Verbindung des Clients getrennt und wiederhergestellt wurde. Bei der Servicequalität fire and forget wird das Zustellungstoken sofort zurückgegeben. In den anderen beiden Fällen wird das Zustellungstoken nur zurückgegeben, wenn der Client die Bestätigung erhält, dass die Veröffentlichung an Subskribenten gesendet wurde.

Veröffentlichungen, die infolge einer Clientsubskription an einen MQTT -Client gesendet werden, werden an die Callback-Methode messageArrived zugestellt. messageArrived wird in einem anderen Thread als die Hauptanwendung ausgeführt.

Nachrichten direkt an einen MQTT -Client senden

Sie haben zwei Möglichkeiten, eine Nachricht an einen bestimmten MQTT -Client zu senden.
  1. Eine IBM MQ -Anwendung kann eine Nachricht direkt an einen MQTT -Client ohne Subskription senden; siehe Nachricht direkt an einen Client senden.
  2. Eine alternative Methode ist die Verwendung Ihrer ClientIdentifier-Namenskonvention. Lassen Sie alle MQTT -Subskribenten Subskriptionen mit ihrer eindeutigen ClientIdentifier als Thema erstellen. Nehmen Sie Veröffentlichungen für ClientIdentifier vor. Die Veröffentlichung wird an den Client gesendet, der das Thema ClientIdentifier abonniert hat. Mit diesem Verfahren können Sie eine Veröffentlichung an einen bestimmten MQTT Subskribenten senden.