第110章 MQTT


MQTT コンポーネント

Camel 2.10 以降で利用可能
mqtt: コンポーネントは、Apache ActiveMQMosquittoなどの MQTT 準拠のメッセージブローカーとの通信に使用されます。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-mqtt</artifactId>
    <version>2.17.0.redhat-630xxx</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

Camel on EAP デプロイメント

このコンポーネントは、Red Hat JBoss Enterprise Application Platform (JBoss EAP) コンテナー上で簡素化されたデプロイメントモデルを提供する Camel on EAP (Wildfly Camel) フレームワークによってサポートされます。このモデルの詳細は、Deploying into a Web Server の Apache Camel on JBoss EAP の章を参照してください

URI 形式

mqtt://name[?options]
Copy to Clipboard Toggle word wrap
name は、コンポーネントを割り当てる名前です。

オプション

Expand
プロパティー デフォルト 説明
host tcp://127.0.0.1:1883 接続する MQTT ブローカーの URI: このコンポーネントも SSL をサポートします(例 : ssl://127.0.0.1:8883)。
localAddress 使用するローカル InetAddress およびポート
username MQTT ブローカーに対する認証に使用するユーザー名。
password MQTT ブローカーに対する認証に使用されるパスワード。
connectAttemptsMax -1 初期接続を確立するための最大試行回数 - - 1 は 無限です。
reconnectAttemptsMax -1 失敗後に接続を再確立する最大試行回数 - - 1 は 無限です。
reconnectDelay 10 初期または失敗した接続の再確立を試行する間隔(ミリ秒単位)。
reconnectBackOffMultiplier 2.0 連続して失敗した接続試行に対して接続試行間の遅延に対する乗数
reconnectDelayMax 30000 接続を確立する新しい試行間の最大時間(ミリ秒単位)。したがって、reconnectBackOffMultiplier を使用する場合でも、このプロパティーは MQTT ブローカーへの別の接続を試行するまでの最大遅延を定義します。
qualityOfService AtLeastOnce メッセージ交換に使用する MQTT Quality of Service。AtMostOnceAtLeastOnce、または ExactlyOnceのいずれかです。
subscribeTopicName メッセージにサブスクライブする Topic の名前。2.15.0 以降非推奨になり ました(代わりに subscribeTopicNames を使用してください)。
subscribeTopicNames
Camel 2.15.0: メッセージにサブスクライブするトピックのコンマ区切りリスト。
階層内の特定のパターンに一致するトピックをサブスクライブするために、このリストの各項目には MQTT ワイルドカード(+ または #)を含めることができます。たとえば、+ は階層内のレベルのすべてのトピックのワイルドカードであるため、ブローカーにトピック topics/one および topics/two がある場合は、topics/+ を使用して両方にサブスクライブできます。ここで考慮すべき注意事項は、ブローカーが topics/three を追加すると、ルートもそのトピックからメッセージを受信することです。
publishTopicName camel/mqtt/test メッセージを公開するデフォルトのトピック
byDefaultRetain false MQTT ブローカーに送信されるメッセージで使用されるデフォルトの保持ポリシー
mqttTopicPropertyName _MQTTTopicPropertyName+
個別の公開されたメッセージのエクスチェンジを検索するプロパティー名。これが設定されている場合は、名前は Topic として使用されるため、MQTT メッセージブローカーにメッセージをパブリッシュします。このオプションは、Camel 2.14.0 以降削除されます。
Camel 2.14.0 以降、 Camel は CamelMQTTSubscribeTopic を MQTT コンシューマーのトピックプロパティー名として使用し、CamelMQTTPublishTopic を MQTT プロデューサーのトピックプロパティー名として使用します。
mqttRetainPropertyName MQTTRetain 個別の公開されたメッセージのエクスチェンジを検索するプロパティー名。これが設定される場合(ブール値を期待): retain プロパティーは、MQTT メッセージブローカーに送信されたメッセージに設定されます。
mqttQosPropertyName MQTTQos 個別の公開されたメッセージのエクスチェンジを検索するプロパティー名。これが設定されている場合は( AtMostOnceAtLeastOnce、または ExactlyOnce のいずれか)、その QoS は MQTT メッセージブローカーに送信されるメッセージに設定されます。
connectWaitInSeconds 10 コンポーネントが MQTT ブローカーへの接続が確立されるまで待機する遅延(秒単位)
disconnectWaitInSeconds 5 コンポーネントが MQTT ブローカーからの stop ()で有効な接続を待機する秒数
sendWaitInSeconds 5 例外を出力する前に、コンポーネントが MQTT ブローカーからの受信応答がパブリッシュされたメッセージを確認するまで待機する最大時間。
clientId MQTT ブローカーへのコンポーネント接続に使用する ID。指定されていない場合は、自動的に割り当てられます。
cleanSession true true の場合、MQTT ブローカーへの接続または切断時にすべての状態情報が破棄されます。cleanSessionfalse に設定するときは、clientId を指定する必要があります。
URI にクエリーオプションは ?option=value&option=value&.. の形式で追加できます。

サンプル

メッセージの送信:
from("direct:foo")
    .to("mqtt:cheese?publishTopicName=test.mqtt.topic");
Copy to Clipboard Toggle word wrap
メッセージの使用:
from("mqtt:bar?subscribeTopicName=test.mqtt.topic")
    .transform(body().convertToString())
    .to("mock:result")
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat