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.第187章 XMPP
XMPP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
xmpp: コンポーネントは XMPP (Jabber)トランスポートを実装します。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
xmpp://[login@]hostname[:port][/participant][?Options]
xmpp://[login@]hostname[:port][/participant][?Options]
コンポーネントは、部屋ベースと非個人の会話の両方をサポートします。コンポーネントはプロデューサーとコンシューマーの両方をサポートします(XMPP からメッセージを取得したり、XMPP にメッセージを送信したりできます)。コンシューマーモードは、部屋をサポートします。
URI にクエリーオプションは
?option=value&option=value&.. の形式で追加できます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
名前 | 説明 |
---|---|
room
|
このオプションを指定すると、コンポーネントは MUC (Multi User Chat)に接続します。通常、MUC のドメイン名はログインドメインとは異なります。たとえば、superman@jabber.org で、krypton 部屋に加入する場合、部屋の URL は krypton@conference.jabber.org となります。会議 の部分に注意します。
|
user
|
ユーザー名(サーバー名なし)。指定しない場合、匿名ログインが試行されます。 |
password
|
Password。 |
resource
|
XMPP リソース。デフォルトは Camel です。
|
createAccount
|
true の場合、アカウントの作成の試行が行われます。デフォルトは false です。
|
参加者
|
メッセージを受信するユーザーの JID (Jabber ID)。room パラメーターは、参加者 よりも優先されます。
|
ニックネーム
|
部屋への参加時にニックネームを使用します。room が指定され、ニックネームが指定されていない場合、ユーザー はニックネームに使用されます。
|
serviceName
|
接続しているサービスの名前。Google Talk の場合、これは gmail.com になります。
|
testConnectionOnStartup
|
*Camel 2.11* 起動時に接続をテストするかどうかを指定します。これは、ルートの開始時に XMPP クライアントに XMPP サーバーへの有効な接続を確保するために使用されます。接続を確立できない場合に Camel は起動時に例外を出力します。このオプションが false に設定されている場合、Camel はプロデューサーが必要とするときにレイジー接続を確立しようとし、接続が確立されるまでコンシューマー接続をポーリングします。デフォルトは true です。
|
connectionPollDelay
|
*Camel 2.11* XMPP 接続の正常性を検証するポーリングの間隔(秒単位)、または最初のコンシューマー接続を確立しようとする間隔(秒単位)。非アクティブになると、Camel は接続の再確立を試みます。デフォルトは 10 秒 です。
|
pubsub
|
Camel 2.15: 入力で pubsub パケットを許可します。デフォルトは false です。
|
doc
|
Camel 2.15: 着信パケットの Document フォームを含む In メッセージに doc ヘッダーを設定します。デフォルトは true で、存在または pubsub は true、それ以外の場合は false です。
|
ヘッダーおよび Subject または Language の設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Apache Camel は、メッセージ IN ヘッダーを XMPP メッセージのプロパティーとして設定します。ヘッダーのカスタムフィルターが必要な場合は、
HeaderFilterStategy
を設定できます。XMPP メッセージの Subject および Language も IN ヘッダーとして提供されている場合に設定されます。
例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ユーザー
superman
は、パスワード secret
を使用して jabber
サーバーで部屋 krypton
に参加するためのスーパーマンです。
xmpp://superman@jabber.org/?room=krypton@conference.jabber.org&password=secret
xmpp://superman@jabber.org/?room=krypton@conference.jabber.org&password=secret
ユーザー
superman
は、joker
にメッセージを送信します。
xmpp://superman@jabber.org/joker@jabber.org?password=secret
xmpp://superman@jabber.org/joker@jabber.org?password=secret
Java でのルーティングの例:
from("timer://kickoff?period=10000"). setBody(constant("I will win!\n Your Superman.")). to("xmpp://superman@jabber.org/joker@jabber.org?password=secret");
from("timer://kickoff?period=10000").
setBody(constant("I will win!\n Your Superman.")).
to("xmpp://superman@jabber.org/joker@jabber.org?password=secret");
joker
からキューにあるすべてのメッセージを evil.talk
に書き込むコンシューマー設定。
from("xmpp://superman@jabber.org/joker@jabber.org?password=secret"). to("activemq:evil.talk");
from("xmpp://superman@jabber.org/joker@jabber.org?password=secret").
to("activemq:evil.talk");
部屋メッセージをリッスンするコンシューマーの設定:
from("xmpp://superman@jabber.org/?password=secret&room=krypton@conference.jabber.org"). to("activemq:krypton.talk");
from("xmpp://superman@jabber.org/?password=secret&room=krypton@conference.jabber.org").
to("activemq:krypton.talk");
短い表記の部屋(ドメイン部分なし):
from("xmpp://superman@jabber.org/?password=secret&room=krypton"). to("activemq:krypton.talk");
from("xmpp://superman@jabber.org/?password=secret&room=krypton").
to("activemq:krypton.talk");
Google Chat サービスに接続する場合は、
serviceName
と認証情報を指定する必要があります。
// send a message from fromuser@gmail.com to touser@gmail.com from("direct:start"). to("xmpp://talk.google.com:5222/touser@gmail.com?serviceName=gmail.com&user=fromuser&password=secret"). to("mock:result");
// send a message from fromuser@gmail.com to touser@gmail.com
from("direct:start").
to("xmpp://talk.google.com:5222/touser@gmail.com?serviceName=gmail.com&user=fromuser&password=secret").
to("mock:result");