すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for MQTT:最適化されたデバイスとクラウドのインタラクション

最終更新日:Apr 08, 2025

ApsaraMQ for MQTT は、Message Queuing Telemetry Transport(MQTT)5.0 で最適化されたデバイスとクラウドのインタラクションをサポートしています。このトピックでは、最適化されたデバイスとクラウドのインタラクションについて説明します。

機能の説明

MQTT 5.0 では、リクエストレスポンスパターン、サブスクリプションオプション、改善されたエラーレポートなど、複数の機能が導入され、クライアントとサーバー(クラウド)間のインタラクションが最適化されています。これらの機能は、通信の柔軟性、信頼性、永続性を向上させ、デバイスとクラウドのシナリオに対してより効果的なソリューションを提供するように設計されています。

シナリオ

  • リクエストレスポンスインタラクション: クライアントでリクエストを開始してサーバーのデータをクエリしたり、サーバーで操作を実行したりし、サーバーからレスポンスを受信できます。この機能は、従来の HTTP リクエストレスポンスパターンと同様の方法で動作します。

  • サービス品質(QoS)管理: サブスクリプションオプションを使用して、クライアントの最大 QoS レベルを指定し、サービス品質を確保するために保持メッセージを受信するかどうかを指定できます。

  • ステータスの同期: メッセージ保持機能とセッション有効期限機能は、クライアントが再接続された後のセッションステータスの回復に役立ちます。これにより、通信の永続性が向上します。

接続インタラクション

接続インタラクションにより、デバイスとサーバー間のネゴシエーションが可能になります。クライアントがサーバーとの接続を確立すると、クライアントに関する設定情報がサーバーに送信され、接続が成功したかどうかが確認されます。接続が成功した場合、サーバーは設定項目の最終値を返します。

パラメーター

説明

サーバーから返される値

Wildcard Subscription Available

  • 1: ワイルドカードサブスクリプションがサポートされています。

  • 0: ワイルドカードサブスクリプションはサポートされていません。

1

Subscription Identifiers Available

  • 1: サブスクリプション ID がサポートされています。

  • 0: サブスクリプション ID はサポートされていません。

1

Topic Alias

  • 1: サーバーは接続時にトピックエイリアスを受け入れます。

  • 0: サーバーは接続時にトピックエイリアスを受け入れません。

1

Maximum QoS

  • 2: QoS 2。

  • 1: QoS 1。

  • 0: QoS 0。

2

Server Keep Alive

サーバーは、キープアライブ期間中にハートビートパケットまたはデータパケットの送信を続けます。そうでない場合、接続は中断されます。このパラメーターは、キープアライブ期間を指定します。

有効な値: 1 ~ 8。

単位: 分。

デバイスが接続パラメーターで指定した保持期間が返されます。

戻り値が 8 分を超える場合は、8 分が使用されます。

Session Expiry Interval

接続が中断された後のセッションの保持期間。

有効な値: 0 ~ 2147483647。

単位: 秒。

デバイスが接続パラメーターで指定した保持期間が返されます。

このパラメーターが設定されていない場合は、デフォルト値 0 が返されます。値 0 は、接続が中断された直後にセッションが期限切れになることを示します。このパラメーターが設定されている場合は、10 分を示す値が返されます。値が 10 分未満の場合は、10 分が使用されます。

Maximum Packet Size

有効な値: 0 ~ 128。

単位: KB。

説明
  • データパケットのメッセージ本文の最大サイズは 64 KB です。

  • サーバーはデータパケットを受信した後、データパケットのサイズをチェックしません。代わりに、データパケットはサーバーに直接プッシュされます。サーバーにデータパケットのサイズをチェックさせ、サイズが指定された最大値を超えるデータパケットをインターセプトする場合は、DingTalkグループ 116015007918 に参加して ApsaraMQ for MQTT テクニカルサポートに連絡してください。

固定値 131072 が返されます。この値は 128 KB を示します。

Topic Alias Maximum

有効な値: 0 ~ 30。

  • サーバーは接続ごとに最大 30 個のトピックエイリアスをサポートしています。クライアントからサーバーに送信されるメッセージのトピックエイリアスの数が 30 を超えると、接続が閉じられ、トピック名エラーが報告されます。

  • クライアントは、接続ごとにサーバーに対して最大 30 個のサポートされているトピックエイリアスを宣言できます。宣言されたトピックエイリアスの数が 30 を超えると、サーバーがクライアントにメッセージをプッシュするときにトピックエイリアスは指定されません。

Receive Maximum

Receive Maximum プロパティが MQTT 5.0 に追加されました。このプロパティは、CONNECT パケットと CONNACK パケットで使用できます。Receive Maximum プロパティを使用すると、クライアントまたはサーバーが同時に処理できる QoS 1 または 2 のメッセージの最大数を指定できます。このプロパティの最大値は 65535 です。指定された値が最大値を超える場合は、65535 が使用されます。

Receive Maximum プロパティを使用して、ピアクライアントまたはサーバーが送信できる QoS 1 または 2 のメッセージの最大数を制限できます。ピアクライアントまたはサーバーの未公開メッセージの数が Receive Maximum プロパティの指定値と等しい場合、QoS が 1 または 2 のメッセージは送信できなくなります。これは、トラフィック調整の実装に役立ちます。

アクティブサーバー切断

MQTT 5.0 では、サーバーはデバイスへの接続を閉じて、デバイスに DISCONNECT パケットを送信できます。DISCONNECT パケットには、エラーコードと、接続が閉じられた理由を説明する文字列が含まれています。DISCONNECT パケットはトラブルシューティングを簡素化します。

一般的なエラーコード

10 進数

16 進数

名前

パケットタイプ

0

0x00

成功

CONNACK、PUBACK、PUBREC、PUBREL、PUBCOMP、UNSUBACK、AUTH

0

0x00

正常な切断

DISCONNECT

0

0x00

QoS 0 を許可

SUBACK

1

0x01

QoS 1 を許可

SUBACK

2

0x02

QoS 2 を許可

SUBACK

4

0x04

Will メッセージで切断

DISCONNECT

17

0x11

サブスクリプションが存在しません

UNSUBACK

128

0x80

不特定のエラー

CONNACK、PUBACK、PUBREC、SUBACK、UNSUBACK、DISCONNECT

129

0x81

不正な形式のパケット

CONNACK、DISCONNECT

130

0x82

プロトコルエラー

CONNACK、DISCONNECT

131

0x83

実装固有のエラー

CONNACK、PUBACK、PUBREC、SUBACK、UNSUBACK、DISCONNECT

132

0x84

サポートされていないプロトコルバージョン

CONNACK

133

0x85

クライアント ID が無効です

CONNACK

134

0x86

ユーザー名またはパスワードが無効です

CONNACK

135

0x87

承認されていません

CONNACK、PUBACK、PUBREC、SUBACK、UNSUBACK、DISCONNECT

136

0x88

サーバーが利用できません

CONNACK

137

0x89

サーバーがビジー状態です

CONNACK、DISCONNECT

138

0x8A

禁止されています

CONNACK

140

0x8C

認証方法が無効です

CONNACK、DISCONNECT

141

0x8D

キープアライブタイムアウト

DISCONNECT

142

0x8E

セッションが引き継がれました

DISCONNECT

143

0x8F

トピックフィルターが無効です

SUBACK、UNSUBACK、DISCONNECT

144

0x90

トピック名が無効です

CONNACK、PUBACK、PUBREC、DISCONNECT

145

0x91

パケット ID が使用中です

PUBACK、PUBREC、SUBACK、UNSUBACK

146

0x92

パケット ID が見つかりません

PUBREL、PUBCOMP

147

0x93

Receive Maximum を超えました

DISCONNECT

148

0x94

トピックエイリアスが無効です

DISCONNECT

149

0x95

パケットが大きすぎます

CONNACK、DISCONNECT

150

0x96

メッセージレートが高すぎます

DISCONNECT

151

0x97

クォータを超えました

CONNACK、PUBACK、PUBREC、SUBACK、DISCONNECT

153

0x99

ペイロード形式が無効です

CONNACK、PUBACK、PUBREC、DISCONNECT

154

0x9A

Retain はサポートされていません

CONNACK、DISCONNECT

155

0x9B

QoS はサポートされていません

CONNACK、DISCONNECT

158

0x9E

共有サブスクリプションはサポートされていません

SUBACK、DISCONNECT

159

0x9F

接続レートを超えました

CONNACK、DISCONNECT

160

0xA0

最大接続時間

DISCONNECT

161

0xA1

サブスクリプション ID はサポートされていません

SUBACK、DISCONNECT

162

0xA2

ワイルドカードサブスクリプションはサポートされていません

SUBACK、DISCONNECT