SUBSCRIBE Angegebene Themen abonnieren

Mit der SUBSCRIBE-Nachricht kann ein Client einen Interessenten für einen oder mehrere Themennamen beim Broker registrieren. Nachrichten, die zu diesen Themen veröffentlicht wurden, stellt der Broker vom Client als PUBLISH-Nachrichten zu. Die SUBSCRIBE-Nachricht gibt zudem die QoS-Stufe an, in der der Subskribent veröffentlichte Nachrichten empfangen möchte.

Fester Header

Die nachfolgende Tabelle zeigt das Format des festen Headers.

Bit 7 6 5 4 3 2 1 0
Byte 1 Nachrichtenart (8) DUP-Argument QoS-Stufe RETAIN
  1 0 0 0 0 0 1 x
Byte 2 Verbleibende Länge
QoS-Stufe
SUBSCRIBE-Nachrichten verwenden QoS-Stufe 1, um mehrere Subskriptionsanforderungen zu bestätigen. Die entsprechende SUBACK-Nachricht wird durch Abgleichen der Nachrichten-ID identifiziert. Auch Wiederholungen von SUBSCRIBE-Nachrichten werden entsprechend wie PUBLISH-Nachrichten gehandhabt.
DUP-Argument
In diesem Beispiel steht das DUP-Argument auf Null (0) und zeigt somit an, dass die Nachricht zum ersten Mal gesendet wird. Wenn die Nachricht erneut gesendet wird, weil eine SUBACK-Nachricht innerhalb eines bestimmten Zeitlimitintervalls nicht eingetroffen ist, wird das DUP-Bit gesetzt. Es zeigt dem Broker an, dass die Nachricht unter Umständen das Duplikat einer bereits empfangenen Nachricht ist.
RETAIN-Argument
Nicht verwendet.
Feld "Verbleibende Länge"
Die Länge der Nutzlast. Dies kann ein Mehrfachbytefeld sein.

Variabler Header

Der variable Header enthält eine Nachrichten-ID, da eine SUBSCRIBE-Nachricht die QoS-Stufe 1 hat.

Für gewöhnlich generiert die Protokollbibliothek die Nachrichten-ID und gibt sie an die veröffentlichende Anwendung zurück, beispielsweise als Rückgabe-Handle. Auf diese Weise wird vermieden, dass mehrere Anwendungen oder Veröffentlichungs-Threads auf einem einzelnen Client ausgeführt werden und doppelte Nachrichten-IDs generieren.

Die Nachrichten-ID 0 (0x0000) ist als ungültige Nachrichten-ID reserviert und darf nicht verwendet werden. Die Nachrichten-ID ist eine ganze 16-Bit-Zahl ohne Vorzeichen, die sich üblicherweise mit jeder Nachricht genau um den Wert von 1 erhöht. Dies ist jedoch nicht zwingend erforderlich. Die beiden Bytes der Nachrichten-ID werden in der MSB, gefolgt von LSB (Big Endian), sortiert.

Die nachfolgende Tabelle zeigt ein Beispielformat des variablen Headers mit der Nachrichten-ID 10.

  Beschreibung: 7 6 5 4 3 2 1 0
Nachrichten-ID
Byte 1 Nachrichten-ID MSB (0) 0 0 0 0 0 0 0 0
Byte 2 Nachrichten-ID LSB (10) 0 0 0 0 1 0 1 0

Nutzlast

Die Nutzlast einer SUBSCRIBE-Nachricht enthält eine Liste der vom Client abonnierten Themennamen und die QoS-Stufe, mit der der Client die Nachrichten empfangen möchte. Die Zeichenfolgen sind UTF-verschlüsselt, und die QoS-Stufe belegt 2 Bit eines Einzelbytes. Diese Abschnitt/QoS-Paare werden zusammenhängend gepackt, wie im Nutzlast-Beispiel in der nachfolgenden Tabelle gezeigt.

Themenname "a/b"
Angeforderte QoS-Stufe 1
Themenname "c/d"
Angeforderte QoS-Stufe 2

Themennamen in einer SUBSCRIBE-Nachricht werden nicht komprimiert.

Die nachfolgende Tabelle zeigt das Format der Beispiel-Nutzlast.

  Beschreibung: 7 6 5 4 3 2 1 0
Themenname
Byte 1 Länge MSB (0) 0 0 0 0 0 0 0 0
Byte 2 Länge LSB (3) 0 0 0 0 0 0 1 1
Byte 3 'a' (0x61) 0 1 1 0 0 0 0 1
Byte 4 '/' (0x2F) 0 0 1 0 1 1 1 1
Byte 5 'b' (0x62) 0 1 1 0 0 0 1 0
Angeforderte QoS-Stufe
Byte 6 Angeforderte QoS-Stufe (1) x x x x x x 0 1
Themenname
Byte 7 Länge MSB (0) 0 0 0 0 0 0 0 0
Byte 8 Länge LSB (3) 0 0 0 0 0 0 1 1
Byte 9 'c' (0x63) 0 1 1 0 0 0 1 1
Byte 10 '/' (0x2F) 0 0 1 0 1 1 1 1
Byte 11 'd' (0x64) 0 1 1 0 0 1 0 0
Angeforderte QoS-Stufe
Byte 12 Angeforderte QoS-Stufe (2) x x x x x x 1 0

In der Annahme, dass die angeforderte QoS-Stufe erteilt ist, empfängt der Client PUBLISH-Nachrichten auf dieser Stufe oder darunter, je nach QoS-Stufe der ursprünglichen Nachricht des Publishers. Beispiel: Wenn ein Client ein bestimmtes Thema mit QoS-Stufe 1 abonniert hat, wird eine PUBLISH-Nachricht mit QoS-Stufe 0 an den Client auf QoS-Stufe 0 gesendet. Eine PUBLISH-Nachricht mit QoS-Stufe 2 an dasselbe Thema wird heruntergesetzt auf QoS-Stufe 1 zur Zustellung an den Client.

Als Folge ist das Abonnieren eines Themas mit QoS-Stufe 2 gleichbedeutend mit der Aussage "Ich möchte Nachrichten zu diesem Thema auf der QoS-Stufe erhalten, auf der sie veröffentlicht werden".

Das Feld mit der angeforderten QoS-Stufe ist in den Byte verschlüsselt, die auf jeden UTF-verschlüsselten Themennamen folgen (siehe nachfolgende Tabelle).

Bit 7 6 5 4 3 2 1 0
  Reserviert Reserviert Reserviert Reserviert Reserviert Reserviert QoS-Stufe
  x x x x x x    

Die ersten 6 Bit dieses Bytes werden in der aktuellen Protokollversion nicht verwendet. Sie sind zur zukünftigen Nutzung reserviert.

Antwort

Wenn der Broker eine SUBSCRIBE-Nachricht von einem Client empfängt, antwortet er mit einer SUBACK-Nachricht.

Zugehörige Konzepte
WebSphere MQ Telemetry Transport
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac11010_