第24章 Cometd


Cometd コンポーネント

cometd: コンポーネントは、Extras td/bayeux プロトコルjetty 実装と連携するためのトランスポートです。このコンポーネントを dojo ツールキットライブラリーと組み合わせて使用すると、AJAX ベースのメカニズムを使用して Apache Camel メッセージを直接ブラウザーにプッシュできます。

URI 形式

cometd://host:port/channelName[?options]
Copy to Clipboard Toggle word wrap
channelName は、Apache Camel エンドポイントによってサブスクライブできるトピックを表します。

cometd://localhost:8080/service/mychannel
cometds://localhost:8443/service/mychannel
Copy to Clipboard Toggle word wrap
cometds: は SSL が設定されたエンドポイントを表します。

オプション

Expand
名前 デフォルト値 説明
resourceBase Web リソースまたはクラスパスのルートディレクトリー。コンポーネントがファイルシステムまたはクラスパスからリソースを読み込むかどうかに応じて、プロトコル file: または classpath: を使用します。クラスパスは、リソースが jar にパッケージ化されている OSGI デプロイメントに必要です。
baseResource Camel 2.7: Web リソースまたはクラスパスのルートディレクトリー。コンポーネントがファイルシステムまたはクラスパスからリソースを読み込むかどうかに応じて、プロトコル file: または classpath: を使用します。クラスパスは、リソースが jar にパッケージ化されている OSGI デプロイメントに必要です。
timeout 240000 サーバー側のポーリングのタイムアウト(ミリ秒単位)。これは、応答前にサーバーが再接続要求を保持する期間です。
interval 0 クライアント側のポーリングのタイムアウト(ミリ秒単位)。クライアントが再接続間で待機する時間
maxInterval 30000 クライアント側の最大ポーリングタイムアウト(ミリ秒単位)。接続がこの時間内に受信されない場合、クライアントは削除されます。
multiFrameInterval 1500 同じブラウザーから複数の接続が検出されると、クライアント側のポーリングのタイムアウト。
jsonCommented true true の場合、サーバーはコメントでラップされた JSON を受け入れ、コメントでラップされた JSON を生成します。これは、Hijacking に対する defence です。
logLevel 1 0=none, 1=info, 2=debug.
sslContextParameters Camel 2.9: レジストリー の org.apache.camel.util.jsse.SSLContextParameters オブジェクトへの 参照。 この参照は、コンポーネントレベルで設定済みの SSLContextParameters を上書きします。 Security Guide および Using the JSSE Configuration Utility の Configuring Transport Security for Camel Components の章 を参照してください。
crossOriginFilterOn false Camel 2.10: true の場合、サーバーはドメイン間のフィルターリングをサポートします
allowedOrigins * Camel 2.10: crosssOriginFilterOntrueの場合、クロスをサポートするオリジンドメイン
filterPath Camel 2.10: crosssOriginFilterOntrueの場合、filterPath は CrossOriginFilter によって使用されます。
disconnectLocalSession false Camel 2.10.5/2.11.1: (プロデューサーのみ): メッセージをチャネルに公開した後にローカルセッションを切断するかどうか。デフォルトでは CometD によって調整されないため、ローカルセッションの切断が必要です。そのため、メモリー不足になります。
URI にクエリーオプションは ?option=value&option=value&.. の形式で追加できます。
パラメーターを渡す方法の例を以下に示します。
ファイルの場合(Webapp リソースが Web アプリケーションディレクトリーにある場合) cometd://localhost:8080?resourceBase=file./webappクラスパスの場合(Web リソースが Webapp フォルダー内にパッケージ化される場合) cometd://localhost:8080?resourceBase=classpath:webapp

認証

Camel 2.8 から利用可能
カスタムの SecurityPolicy および Extension の を CometdComponent に設定できます。これにより、ここに記載されているように認証を使用できます。

Cometd コンポーネントでの SSL の設定

Camel 2.9 の時点で、Cometd コンポーネントは Camel JSSE 設定ユーティリティーを介して SSL/TLS 設定をサポートします。このユーティリティーは、作成する必要のあるコンポーネント固有のコードの量を大幅に減らし、エンドポイントおよびコンポーネントレベルで設定可能です。以下の例は、エンドポイントの Spring DSL ベースの設定を示しています。CometdComponent クラスで SSL を設定する必要があります。
...
  <camel:sslContextParameters
      id="sslContextParameters">
    <camel:keyManagers
        keyPassword="keyPassword">
      <camel:keyStore
          resource="/users/home/server/keystore.jks"
          password="keystorePassword"/>
    </camel:keyManagers>
    <camel:trustManagers>
      <camel:keyStore
          resource="/users/home/server/keystore.jks"
          password="keystorePassword"/>
    </camel:keyManagers>
  </camel:sslContextParameters>

  <bean id="cometd" class="org. apache. camel. component.cometd.CometdComponent">
    <property name="sslContextParameters" ref="sslContextParameters"/>
  </bean>
  ...
  <to uri="cometds://127.0.0.1:443/service/test?baseResource=file:./target/test-classes/webapp&timeout=240000&interval=0&maxInterval=30000&multiFrameInterval=1500&jsonCommented=true&logLevel=2&sslContextParameters=#sslContextParameters"/>...
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat