コンテンツへスキップ
uencoder

IoT メッセージングに MQTT トピック構造を使う

MQTT トピックはスラッシュ区切りの階層とワイルドカードで購読を制御します。トピック設計、QoS レベル、保持メッセージを学びましょう。

  1. 1

    MQTT トピックはスラッシュ区切りの階層パスです (例: home/livingroom/temperature)。大文字と小文字は区別され、先頭と末尾に / を付けてはいけません。ワイルドカード:+ は 1 レベルにマッチし (home/+/temperature)、# は残りの全レベルにマッチします (home/#。# は末尾でなければなりません)。ワイルドカードを使うのはサブスクライバー側だけで、パブリッシャーは常に特定のトピックに対して発行します。

  2. 2
    URL パーサー →

    MQTT トピックを URL パスのようにパースして、階層構造を把握します。/ で分割するとトピックのレベルが得られます。トピック構造の検証や、IoT デバイス向けの階層的な命名スキームの設計に役立ちます。

  3. 3
    URL エンコーダー →

    MQTT トピック内の特殊文字をエンコードします。トピックにはスペースや UTF-8 文字を含められますが、安全のため URL エンコードすべきです。先頭のスペースは有効ですが紛らわしいので避けてください。一貫性のため、小文字とハイフンを使ってください。

よくある質問

MQTT の QoS レベルとは何ですか?
QoS 0 は最大 1 回 (送りっぱなし、確認応答なし)、QoS 1 は最低 1 回 (確認応答あり、重複の可能性あり)、QoS 2 は厳密に 1 回 (4 ステップのハンドシェイク、重複なし) です。頻繁なセンサーデータ (重複が問題にならないもの) には QoS 0 を、コマンドには QoS 1 を、重要なメッセージ (課金、状態変更) には QoS 2 を使ってください。
保持メッセージ (retained message) とは何ですか?
保持メッセージは、トピックに発行された最後のメッセージで、ブローカーが保存します。新しいサブスクライバーは、購読開始時にすぐ保持メッセージを受け取ります。状態 (デバイスのオン/オフ、現在温度) に便利で、新しいクライアントは次の発行を待たずに現在の状態を取得できます。保持メッセージはトピックごとに 1 つだけです。

このタスクを解決するワークフロー

関連ツール