このトピックでは、IoT Platform がサポートする MQTT 5.0 におけるデバイスとクラウド間の最適化されたインタラクションについて説明します。
機能の説明
MQTT 5.0 は、デバイスとサーバー間の相互運用性とメッセージの透過性を向上させるように設計されています。MQTT 5.0 では、次のデバイスとクラウド間のインタラクションが最適化されています。
接続確立時のフィードバック
接続確立時のフィードバックは、デバイスとサーバー間のネゴシエーションメカニズムです。デバイスとサーバー間の接続が確立されると、デバイスはリクエストで接続パラメーターを送信し、サーバーはフィードバックとして CONNACK パケットを返します。CONNACK パケットは、リクエストパラメーターの値とデバイスで使用可能な機能を含む接続確認応答です。
CONNACK プロパティ | 説明と有効値 | IoT Platform からの応答 |
Retain Available |
| 1 |
Wildcard Subscription Available |
| 1 |
Subscription Identifiers Available |
| 0 |
Shared Subscription Available |
| 1 |
Topic Alias |
| 1 |
Maximum QoS |
| 1 |
Server Keep Alive | サーバーは、キープアライブ期間中にハートビート パケットまたはデータ パケットの送信を続けます。そうでない場合、接続は切断されます。このプロパティは、キープアライブ期間を指定します。 有効値: 30 ~ 1200 | IoT Platform は、デバイスが接続パラメーターで指定したキープアライブ期間を返します。 デバイスによって設定された値が有効値の範囲外の場合、接続は切断されます。 |
Session Expiry Interval | このプロパティは、接続が切断された後のセッションの保持期間を指定します。 有効値: 0 ~ 0xFFFFFFFF | IoT Platform は、デバイスが接続パラメーターで指定した保持期間を返します。 デバイスがこの期間を指定しなかった場合は、デフォルト値 0 が使用されます。 |
Maximum Packet Size | 有効値: 0 ~ 0xFFFFFFFF | IoT Platform は常に 262144 を返します。これは 256 KB を示します。 |
Topic Alias Maximum | 有効値: 0 ~ 0xFFFFFFFF | IoT Platform は常に 20 を返します。 |
サーバー送信の DISCONNECT パケット
MQTT 3.1.1 では、デバイスがルールに違反した場合、サーバーは接続が閉じられた理由を説明せずにデバイス接続を直接閉じます。
MQTT 5.0 では、サーバーはデバイスへの接続を閉じ、デバイスに DISCONNECT パケットを送信できます。DISCONNECT パケットには、理由コードと、接続が閉じられた理由を説明する理由文字列が含まれています。DISCONNECT パケットはトラブルシューティングを簡素化します。
エラーコードの機能強化
機能強化 | MQTT 3.1 | MQTT 5.0 |
数量の増加 | 5 つのエラーコード | 20 個のエラーコード |
理由文字列 | サポートされていません | デバッグとトラブルシューティングのために詳細なエラー原因を指定するために、Reason String プロパティが追加されています。 |
より多くの種類のパケットのエラーコード | エラーコードは CONNECT パケットに対してのみ返されます。 | エラーコードは、CONNECT、UNSUBACK、PUBACK、DISCONNECT、およびその他のパケットに対して返されます。 |
エラーコード
10 進数 | 16 進数 | 名前 | パケット タイプ |
0 | 0x00 | 成功 | CONNACK、PUBACK、PUBREC、PUBREL、PUBCOMP、UNSUBACK、AUTH |
128 | 0x80 | 不特定のエラー | CONNACK、PUBACK、PUBREC、SUBACK、UNSUBACK、DISCONNECT |
129 | 0x81 | 不正な形式のパケット | CONNACK、DISCONNECT |
130 | 0x82 | プロトコル エラー | CONNACK、DISCONNECT |
132 | 0x84 | サポートされていないプロトコル バージョン | CONNACK |
136 | 0x88 | サーバーが利用できません | CONNACK |
137 | 0x89 | サーバーがビジー状態です | CONNACK、DISCONNECT |
138 | 0x8A | 禁止されています | CONNACK |
140 | 0x8C | 不正な認証方式 | CONNACK、DISCONNECT |
141 | 0x8D | キープアライブ タイムアウト | DISCONNECT |
144 | 0x90 | 無効なトピック名 | CONNACK、PUBACK、PUBREC、DISCONNECT |
147 | 0x93 | 受信最大値を超えました | DISCONNECT |
148 | 0x94 | 無効な Topic Alias | DISCONNECT |
149 | 0x95 | パケットが大きすぎます | CONNACK、DISCONNECT |
150 | 0x96 | メッセージ レートが高すぎます | DISCONNECT |
151 | 0x97 | クォータを超えました | CONNACK、PUBACK、PUBREC、SUBACK、DISCONNECT |
152 | 0x98 | 管理操作 | DISCONNECT |
153 | 0x99 | 無効なペイロード形式 | PUBACK、PUBREC、DISCONNECT |
154 | 0x9A | Retain はサポートされていません | CONNACK、DISCONNECT |
155 | 0x9B | QoS はサポートされていません | CONNACK、DISCONNECT |
156 | 0x9C | 別のサーバーを使用してください | CONNACK、DISCONNECT |
157 | 0x9D | サーバーが移動しました | CONNACK、DISCONNECT |
158 | 0x9E | 共有サブスクリプションはサポートされていません | SUBACK、DISCONNECT |
159 | 0x9F | 接続レートを超えました | CONNACK、DISCONNECT |