UNSUBSCRIBE - 指定したトピックからのアンサブスクライブ

UNSUBSCRIBE メッセージは、 クライアントからブローカーへ送信され、指定したトピックからのアンサブスクライブを行います。

固定ヘッダー

以下の表は、固定ヘッダーの形式の例を示しています。

ビット 7 6 5 4 3 2 1 0
バイト 1 メッセージ・タイプ (10) DUP フラグ QoS レベル RETAIN
  1 0 1 0 0 0 1 x
バイト 2 残りの長さ
QoS レベル
複数のアンサブスクライブ要求を確認通知するための QoS レベルは 1 です。 対応する UNSUBACK メッセージは、メッセージ ID によって識別されます。 PUBLISH メッセージと同じ方法で再試行を処理します。
DUP フラグ
この例では、DUP フラグは、 メッセージがはじめて送信されていることを示すためにゼロ (0) に設定されます。

SUBACK メッセージが指定されたタイムアウト期間が過ぎても到着しないために、 このメッセージが再送信される場合、 すでに受信したメッセージの重複である可能性があることをブローカーに伝えるために DUP ビットが設定されます。

RETAIN フラグ
使用されません。
残りの長さ
これはペイロードの長さです。これは、マルチバイト・フィールドの場合もあります。

変数ヘッダー

UNSUBSCRIBE メッセージは QoS レベルが 1 であるため、 変数ヘッダーには、メッセージ ID が含まれています。

通常は、プロトコル・ライブラリーはメッセージ ID を生成し、 パブリッシュしたアプリケーションに戻りハンドルとして戻します。 このような方法により、 1 つのクライアントで実行している複数のアプリケーションまたは複数のパブリッシュ・スレッドによって、 重複したメッセージ ID が生成される危険を回避できます。

メッセージ ID 0 (0x0000) は、無効なメッセージ ID として予約済みなので、 使用してはなりません。 メッセージ ID は 16 ビットの符号なし整数です。 通常は大きくなっていきますが、あるメッセージから別のメッセージへと 1 つずつ大きくすることは求められていません。 メッセージ ID の 2 バイトの順序は、まず MSB、その後で LSB になります (ビッグ・エンディアン)。

以下の表は、10 というメッセージ ID を持つ変数ヘッダーの形式の例を示しています。

  説明 7 6 5 4 3 2 1 0
メッセージ ID
バイト 1 Message ID MSB (0) 0 0 0 0 0 0 0 0
バイト 2 Message ID LSB (10) 0 0 0 0 1 0 1 0

ペイロード

クライアントは、ペイロードで指定されたトピックのリストからアンサブスクライブします。 ストリングは UTF エンコードされており、連続して圧縮されています。 UNSUBSCRIBE メッセージのトピック名は、圧縮されません。 以下の表は、ペイロードの例を示しています。

トピック名 "a/b"
トピック名 "c/d"

以下の表は、このペイロードの形式を示しています。

  説明 7 6 5 4 3 2 1 0
トピック名
バイト 1 Length MSB (0) 0 0 0 0 0 0 0 0
バイト 2 Length LSB (3) 0 0 0 0 0 0 1 1
バイト 3 'a' (0x61) 0 1 1 0 0 0 0 1
バイト 4 '/' (0x2F) 0 0 1 0 1 1 1 1
バイト 5 'b' (0x62) 0 1 1 0 0 0 1 0
トピック名
バイト 6 Length MSB (0) 0 0 0 0 0 0 0 0
バイト 7 Length LSB (3) 0 0 0 0 0 0 1 1
バイト 8 'c' (0x63) 0 1 1 0 0 0 1 1
バイト 9 '/' (0x2F) 0 0 1 0 1 1 1 1
バイト 10 'd' (0x64) 0 1 1 0 0 1 0 0

応答

ブローカーは、UNSUBSCRIBE メッセージへの応答としてクライアントに UNSUBACK を送信します。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2005 Last updated: 10/31/2005
ac11030_