Message Queuing Telemetry Transport (MQTT) は、ネットワーク帯域幅とデバイス リソースの要件を大幅に削減し、信頼性の高いデータ転送を保証する軽量の IoT プロトコルです。MQTT は、IoT 業界で最も広く使用されているプロトコルの 1 つです。IoT デバイスの数と IoT シナリオの数が増加するにつれて、MQTT 5.0 は新しいシナリオの要件を満たすように開発されました。このトピックでは、MQTT 5.0 の機能について説明します。
背景情報
IoT Platform は、MQTT 3.1、MQTT 3.1.1、および MQTT 5.0 をサポートしています。詳細については、「MQTT 5.0」、「MQTT 3.1.1」、および「MQTT 3.1」をご参照ください。
IoT Platform は、標準の MQTT ブローカー機能をサポートしています。サーバー側サブスクリプション、データ転送、および IoT Platform SDK 機能は、MQTT ブローカー機能に基づいて開発されています。このようにして、クラウド アプリケーションを効率的に開発できます。詳細については、「サーバー側サブスクリプション」、「データ転送」、および「概要」をご参照ください。
制限事項
デバイスを登録した後、デバイスを IoT Platform に接続するために使用できるプロトコルは 1 つだけです。同じデバイスに複数のプロトコルを使用することはできません。 デバイスを MQTT 5.0 経由で IoT Platform に接続する場合、デバイスを MQTT 3.1 または MQTT 3.1.1 経由で IoT Platform に接続することはできなくなります。
MQTT 5.0 の機能
MQTT 5.0 は、MQTT 3.1.1 よりも多くの機能をサポートし、リソース消費を増やすことなく、使いやすさを損なうことなく、デバイスのパフォーマンス、スケーラビリティ、および相互運用性を向上させます。
機能 | 説明 |
メッセージ ヘッダーは HTTP ヘッダーに似ています。キーと値の形式でカスタム プロパティを指定し、拡張可能なメッセージ プロパティを使用できます。 | |
MQTT 5.0 は、4 バイトの整数を使用して長い長さのトピック名を置き換え、リソース消費を削減します。 | |
デバイスが切断されたときに、デバイスと対応するサーバー間のセッションに関する情報を保存する期間を指定できます。 | |
公開するメッセージの有効期間を指定できます。これにより、サブスクライバーが期限切れのメッセージを受信することを防ぎます。 | |
デバイスが予期せず切断された場合でも、サブスクライバーはデバイスによって公開されたメッセージを受信できます。 | |
デバイスによって公開されるメッセージを保存メッセージとして指定できます。このようにして、新しいサブスクライバーは保存メッセージを受信できます。 | |
複数のサブスクライバーがトピックのメッセージを消費できます。これは、負荷分散システムの構築に役立ちます。 | |
さまざまなサブスクリプション オプションを指定できます。これは、過剰な情報を削除して転送効率を向上させるのに役立ちます。 | |
リクエスト-レスポンス パターンは、HTTP の RPC 呼び出しと同様の方法で機能します。 | |
メッセージのペイロード形式を指定するプロパティが追加されます。このようにして、メッセージを透過的に転送し、ペイロードが可変であるメッセージを送信できます。 | |
MQTT 5.0 は、接続フィードバック、最適化されたエラーコード、サーバー側で開始される切断など、さまざまな機能をサポートしています。これは、トラブルシューティング効率の向上に役立ちます。 |