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

ApsaraMQ for MQTT:ペイロード形式インジケーター

最終更新日:Jan 14, 2025

ApsaraMQ for MQTT は、Message Queuing Telemetry Transport(MQTT) 5.0 のペイロード形式インジケーター機能をサポートしています。このトピックでは、ペイロード形式インジケーター機能について説明します。

機能の説明

ペイロード形式インジケーターは、MQTT 5.0 の独自の機能です。この機能は、PUBLISH メッセージのペイロードが事前定義された形式であるかどうかを示すために使用されます。

ペイロード形式インジケーター機能を使用すると、受信者は PUBLISH メッセージのペイロードを簡単に解釈できます。 ペイロード形式インジケーターパラメーターを 0 または 1 に設定できます。値 0 は、ペイロードに形式が指定されていないことを示します。値 1 は、ペイロードが UTF-8 でエンコードされた文字列であることを示します。

クライアントからブローカーにメッセージを送信するときにペイロード形式インジケーターパラメーターを 1 に設定すると、ブローカーはメッセージが UTF-8 形式であるかどうかを確認します。メッセージが UTF-8 形式でない場合、メッセージの送信は失敗します。メッセージの QoS レベルが 1 の場合、エラーメッセージ PAYLOAD_FORMAT_INVALID が PubAck パケットで返されます。

シナリオ

  • フォーマットネゴシエーション: この機能により、パブリッシャーとサブスクライバーはメッセージコンテンツのフォーマットについて合意に達することができます。たとえば、ペイロード形式インジケーターパラメーターを 1 に設定すると、メッセージのペイロードが UTF-8 でエンコードされていることを示します。これにより、サブスクライバーがメッセージを受信したときに、ペイロードをデコードおよび処理する方法がサブスクライバーに通知されます。

  • デコード検証: メッセージのペイロード形式インジケーターを指定すると、受信者はメッセージが想定される形式でエンコードされているかどうかを確認できます。これにより、受信者はメッセージコンテンツをより安全に処理できます。

  • 相互運用性と互換性: 複数のクライアントまたはサービスが MQTT システムを共有する場合、ペイロード形式インジケーター機能を使用して、すべてのクライアントがメッセージコンテンツを解釈および理解できるようにすることができます。

MQTT クライアントは、トピックから JSON 形式でメッセージをパブリッシュします。クライアントは、トピックをサブスクライブする他のクライアントに、メッセージのペイロードが UTF-8 でエンコードされた JSON テキストであることを知らせたいと考えています。

PUBLISH
Topic: sensor1/data
Payload Format Indicator: 1 // ペイロードは定義済みの形式 UTF-8 でエンコードされています。
Payload: {"temperature": 22.3, "humidity": 48}

上記の例では、ペイロード形式インジケーターパラメーターは 1 に設定されています。このようにして、パブリッシャーは、PUBLISH メッセージのペイロードがバイナリデータや他の形式でエンコードされたデータではなく、UTF-8 でエンコードされた JSON 文字列であることをサブスクライバーに伝えます。この場合、sensor1/data トピックをサブスクライブするすべてのクライアントはペイロード形式を認識し、JSON データを正しく解析できます。

ペイロード形式インジケーター機能は、MQTT 5.0 でのデータ送信の精度と効率を向上させ、あるクライアントからのメッセージデータを他のクライアントが解釈して正しく処理できるようにします。異なるデータ形式を持つ複数のシステムが統合されている場合、ペイロード形式インジケーター機能は処理速度を大幅に向上させるのに役立ちます。