第110章 MQTT
MQTT コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.10 以降で利用可能
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>
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]
name は、コンポーネントを割り当てる名前です。
オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
| プロパティー | デフォルト | 説明 |
|---|---|---|
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。AtMostOnce、AtLeastOnce、または 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
|
個別の公開されたメッセージのエクスチェンジを検索するプロパティー名。これが設定されている場合は( AtMostOnce、AtLeastOnce、または ExactlyOnce のいずれか)、その QoS は MQTT メッセージブローカーに送信されるメッセージに設定されます。 |
connectWaitInSeconds
|
10
|
コンポーネントが MQTT ブローカーへの接続が確立されるまで待機する遅延(秒単位) |
disconnectWaitInSeconds
|
5
|
コンポーネントが MQTT ブローカーからの stop ()で有効な接続を待機する秒数 |
sendWaitInSeconds
|
5
|
例外を出力する前に、コンポーネントが MQTT ブローカーからの受信応答がパブリッシュされたメッセージを確認するまで待機する最大時間。 |
clientId
|
MQTT ブローカーへのコンポーネント接続に使用する ID。指定されていない場合は、自動的に割り当てられます。 | |
cleanSession
|
true
|
true の場合、MQTT ブローカーへの接続または切断時にすべての状態情報が破棄されます。cleanSession を false に設定するときは、clientId を指定する必要があります。
|
URI にクエリーオプションは
?option=value&option=value&.. の形式で追加できます。
サンプル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
メッセージの送信:
from("direct:foo")
.to("mqtt:cheese?publishTopicName=test.mqtt.topic");
メッセージの使用:
from("mqtt:bar?subscribeTopicName=test.mqtt.topic")
.transform(body().convertToString())
.to("mock:result")