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, 2006 最終更新: 08/21/2006
ac11030_