第123章 Paho


Paho コンポーネント

Paho コンポーネントは、Eclipse Paho ライブラリーを使用して MQTT メッセージングプロトコルのコネクターを提供します。Paho は最も人気の高い MQTT ライブラリーの 1 つであるため、Java プロジェクトと統合する場合は Camel Paho コネクターを使用します。

URI 形式

paho:queueName[?options]
Copy to Clipboard Toggle word wrap
たとえば、以下のスニペットは、Camel ルーターと同じホストにインストールされている MQTT ブローカーからメッセージを読み取ります。
from("paho:some/queue").
  to("mock:test");
Copy to Clipboard Toggle word wrap
以下のスニペットは、MQTT ブローカーにメッセージを送信します。
from("direct:test").
  to("paho:some/target/queue");
Copy to Clipboard Toggle word wrap
?option=value&option=value&... の形式で、URI にクエリーオプションを追加できます。たとえば、リモート MQTT ブローカーからメッセージを読み取る方法は次のとおりです。
from("paho:some/queue?brokerUrl=tcp://iot.eclipse.org:1883").
  to("mock:test");
Copy to Clipboard Toggle word wrap

コンポーネントのプロジェクトへの追加

Maven ユーザーは、このコンポーネントの以下の依存関係を pom.xml に追加する必要があります。
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-paho</artifactId>
    <version>x.y.z</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap
Paho アーティファクトは Maven Central でホストされていないため、Eclipse Paho リポジトリーを POM xml ファイルに追加する必要があります。
<repositories>
  <repository>
    <id>eclipse-paho</id>
    <url>https://repo.eclipse.org/content/repositories/paho-releases</url>
    <snapshots>
      <enabled>false</enabled>
    </snapshots>
  </repository>
</repositories>
Copy to Clipboard Toggle word wrap

デフォルトのペイロードタイプ

デフォルトでは、Camel Paho コンポーネントは MQTT メッセージから抽出(または配置)されたバイナリーペイロードで動作します。
// Receive payload
byte[] payload = (byte[]) consumerTemplate.receiveBody("paho:topic");
 
// Send payload
byte[] payload = "message".getBytes();
producerTemplate.sendBody("paho:topic", payload);
Copy to Clipboard Toggle word wrap
当然ながら、Camel ビルドタイプ変換 API は自動データ型変換を実行できます。以下の例では、Camel は自動的にバイナリーペイロードを String (および逆順)に変換します。
// Receive payload
String payload = consumerTemplate.receiveBody("paho:topic", String.class);
 
// Send payload
String payload = "message";
producerTemplate.sendBody("paho:topic", payload);
Copy to Clipboard Toggle word wrap

URI オプション

Expand
オプション
デフォルト
説明
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=#myConnectOptions という名前の Spring Bean を参照する場合、表記法を使用できます。ConnectOptions myレジストリーに MqttConnectOptions のインスタンスが 1 つしかない場合は、エンドポイントによって自動的に取得されます。
たとえば、Camel で使用される規則オーバー設定方法は、ほとんどの状況で非常に便利ですが、MQTT クライアント接続をより詳細に制御したい場合があります。このような状況に対応するために、タイプ org.eclipse.paho.client.mqttv3.MqttConnectOptions の Bean を Camel レジストリーに追加します。Spring アプリケーションでは、Bean をアプリケーションコンテキストに追加することを意味します。以下のスニペットは、パスワードベースの認証を使用して MQTT ブローカーに接続します。
@Bean
MqttConnectOptions connectOptions() {
  MqttConnectOptions connectOptions = new MqttConnectOptions();
  connectOptions.setUserName("henry");
  connectOptions.setPassword("secret".toCharArray());
  return connectOptions;
}
Copy to Clipboard Toggle word wrap

Headers

次のヘッダーは、Paho コンポーネントによって認識されます。
Expand
ヘッダー
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: トピック
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat