次の例では、メッセージを目的のトピックに特定のサービス品質 (QoS) でパブリッシュできる MQTT 用 Anypoint Connector (MQTT Connector) の Publish 操作を設定します。
-
Studio の [Mule Palette (Mule パレット)] で、[HTTP] > [Listener] を選択します。
-
[Listener] を Studio キャンバスにドラッグします。
-
[Path (パス)] を
/mqtt3/publish に設定します。 -
[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号 (+) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。
-
HTTP リスナーのグローバル要素を設定して、[OK] をクリックします。
-
Studio > [Mule Palette (Mule パレット)] で、[MQTT3] > [On New Message] を選択します。
-
[On New Message] を Studio キャンバスにドラッグします。
-
[On New Message] 設定画面で、必要に応じて [Display Name (表示名)] 項目の値を変更します。
-
[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号 (+) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。
-
[MQTT3 Config (MQTT3 設定)] > [Connection (接続)] で [MQTT3 URL Connection (MQTT3 URL 接続)] を選択します。
-
[Client id generator (クライアント ID ジェネレーター)] で [Client id random suffix generator (クライアント ID ランダムサフィックスジェネレーター)] を選択します。
-
次の項目を設定します。
-
Client ID (クライアント ID):
smart-bentley-123 -
Username (ユーザー名):
usertest -
Password (パスワード):
passtest -
URL:
tcp://127.0.0.1:1883
-
-
[OK] をクリックします。
-
[Publish] 設定画面で、次の項目を設定します。
-
Topic (トピック):
quotes/terryPratchett -
Message (メッセージ):
#["Stories of imagination tend to upset those without one."] -
QoS: AT_LEAST_ONCE (デフォルト)
-
Is retained (保持): True
-
[Configuration XML (設定 XML)] エディターで、<mqtt3:publish> および topic の設定は次のように記述されます。
<mqtt3:config name="MQTT_Config">
<mqtt3:connection username="usertest" password="passtest" url="tcp://127.0.0.1:1883">
<mqtt3:client-id-generator>
<mqtt3:client-id-random-suffix-generator clientId="smart-bentley-123" />
</mqtt3:client-id-generator>
</mqtt3:connection>
</mqtt3:config>
<flow name="publishQuote">
<http:listener config-ref="HTTP_Listener" path="/mqtt3/publish" />
<mqtt3:publish config-ref="MQTT_Config" topic="quotes/terryPratchett" qos="AT_LEAST_ONCE" isRetained="true">
<mqtt3:message>#["Stories of imagination sample quote."]</mqtt3:message>
</mqtt3:publish>
</flow>
メッセージを保持としてマーク
デフォルトでは、ブローカーは、現在のサブスクライバーが存在しないトピックに対して受信したメッセージを破棄します。ブローカーがメッセージを保持するようにするには、[Is retained (保持)] を True に設定します。ブローカーは、最後に保持されたメッセージと、選択されたトピックに対応するサービス品質を保存します。
保持されたメッセージのトピックに一致するトピックパターンをサブスクライブしている各クライアントは、保持されたメッセージをサブスクライブ後に受信します。ブローカーには、トピックごとに 1 つの保持されたメッセージのみが保存されます。これにより、新しいサブスクライバーは、パブリッシャーからの次の更新を待つのではなく、最新の既存の値を受信できます。