Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.第123章 Paho
Paho コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Paho コンポーネントは、Eclipse Paho ライブラリーを使用して MQTT メッセージングプロトコルのコネクターを提供します。Paho は最も人気の高い MQTT ライブラリーの 1 つであるため、Java プロジェクトと統合する場合は Camel Paho コネクターを使用します。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
paho:queueName[?options]
paho:queueName[?options]
たとえば、以下のスニペットは、Camel ルーターと同じホストにインストールされている MQTT ブローカーからメッセージを読み取ります。
from("paho:some/queue"). to("mock:test");
from("paho:some/queue").
to("mock:test");
以下のスニペットは、MQTT ブローカーにメッセージを送信します。
from("direct:test"). to("paho:some/target/queue");
from("direct:test").
to("paho:some/target/queue");
?option=value&option=value&...
の形式で、URI にクエリーオプションを追加できます。たとえば、リモート MQTT ブローカーからメッセージを読み取る方法は次のとおりです。
from("paho:some/queue?brokerUrl=tcp://iot.eclipse.org:1883"). to("mock:test");
from("paho:some/queue?brokerUrl=tcp://iot.eclipse.org:1883").
to("mock:test");
コンポーネントのプロジェクトへの追加 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Maven ユーザーは、このコンポーネントの以下の依存関係を
pom.xml
に追加する必要があります。
Paho アーティファクトは Maven Central でホストされていないため、Eclipse Paho リポジトリーを POM xml ファイルに追加する必要があります。
デフォルトのペイロードタイプ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Camel Paho コンポーネントは MQTT メッセージから抽出(または配置)されたバイナリーペイロードで動作します。
当然ながら、Camel ビルドタイプ変換 API は自動データ型変換を実行できます。以下の例では、Camel は自動的にバイナリーペイロードを String (および逆順)に変換します。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
オプション
|
デフォルト
|
説明
|
---|---|---|
clientId
|
camel-<timestamp>
|
MQTT クライアント識別子。 |
brokerUrl
|
tcp://localhost:1883
|
MQTT ブローカーの URL。
|
persistence
|
memory
|
使用されるクライアントの永続性 - memory または file
|
filePersistenceDirectory
|
現行ディレクトリー | (Camel 2.16.1 および 2.17) ファイルの永続性で使用されるベースディレクトリー。ファイル以外の永続性が使用されている場合は有効になりません。 |
qos
|
2 |
クライアントの QoS (Quality of Service)レベル(0 -2 )
|
connectOptions
|
none |
Camel レジストリーにある org.eclipse.paho.client.mqttv3.MqttConnectOptions インスタンスへの参照。参照 MqttConnectOptions インスタンスは、エンドポイントによって接続を初期化するために使用されます。たとえば、connectOptions=#my ConnectOptions という名前の Spring Bean を参照する場合、表記法を使用できます。ConnectOptions my レジストリーに MqttConnectOptions のインスタンスが 1 つしかない場合は、エンドポイントによって自動的に取得されます。
|
たとえば、Camel で使用される規則オーバー設定方法は、ほとんどの状況で非常に便利ですが、MQTT クライアント接続をより詳細に制御したい場合があります。このような状況に対応するために、タイプ
org.eclipse.paho.client.mqttv3.MqttConnectOptions
の Bean を Camel レジストリーに追加します。Spring アプリケーションでは、Bean をアプリケーションコンテキストに追加することを意味します。以下のスニペットは、パスワードベースの認証を使用して MQTT ブローカーに接続します。
Headers リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
次のヘッダーは、Paho コンポーネントによって認識されます。
ヘッダー
|
Java 定数
| エンドポイントタイプ | 値のタイプ |
説明
|
---|---|---|---|---|
PahoOriginalMessage
|
PahoConstants.HEADER_ORIGINAL_MESSAGE
|
コンシューマー |
org.eclipse.paho.client.mqttv3.MqttMessage
|
クライアントが受信した元の Paho メッセージインスタンス。
非推奨: Camel 2.17 以降では、元の MqttMessage はヘッダーとして保存されませんが、ゲッター
getMqttMessage を持つ org.apache.camel.component.paho.PahoMessage メッセージには保存されません。
|
CamelMqttTopic
|
PahoConstants.MQTT_TOPIC | コンシューマー | 文字列 | Camel 2.17: トピック |