検索

第10章 Atmo336 Websocket Component

download PDF

Camel バージョン 2.14 から利用可能

atmo336-websocket: コンポーネントは、(外部クライアントから websocket 接続を受け入れるサーブレットとして)Websocket 経由で外部クライアントと通信するサーブレットに Websocket ベースのエンドポイントを提供します。
コンポーネントは SERVLET コンポーネントを使用し、 Atmo336 ライブラリーを 使用してさまざまなサーブレットコンテナーで Websocket トランスポートをサポートします(例: Jetty、Tomcat、…)。

埋め込み Jetty サーバーを起動する Websocket コンポーネントとは異なり、このコンポーネントはコンテナーのサーブレットプロバイダーを使用します。

Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-atmosphere-websocket</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

10.1. atmo336-Websocket オプション

Atmo336 Websocket コンポーネントは、以下に示す 8 個のオプションをサポートします。

Name説明デフォルトType

servletName (common)

使用するサーブレットのデフォルト名。デフォルトの名前は CamelServlet です。

 

文字列

httpRegistry (common)

カスタムの org.apache.camel.component.servlet.HttpRegistry を使用します。

 

HttpRegistry

attachmentMultipart Binding (common)

マルチパート/フォームデータを Camel Exchange で添付として自動バインドするかどうか。attachmentMultipartBinding=true オプションおよび disableStreamCache=false オプションは併用できません。AttachmentMultipartBinding を使用するには disableStreamCache を削除します。サーブレットの使用時にこの設定を有効にするためにサーブレット固有の設定を必要とする可能性があるため、これはデフォルトで無効になります。

false

boolean

httpBinding (advanced)

カスタムの HttpBinding を使用して Camel メッセージと HttpClient 間のマッピングを制御する場合。

 

HttpBinding

httpConfiguration (advanced)

共有 HttpConfiguration をベース設定として使用します。

 

HttpConfiguration

allowJavaSerialized Object (advanced)

リクエストが context-type=application/x-java-serialized-object を使用する場合に java のシリアライズを許可するかどうか。これは、デフォルトではオフになっています。これを有効にすると、Java は受信データをリクエストから Java へデシリアライズし、潜在的なセキュリティーリスクとなる可能性があることに注意してください。

false

boolean

headerFilterStrategy (filter)

カスタムの org.apache.camel.spi.HeaderFilterStrategy を使用して、Camel メッセージとの間でヘッダーをフィルターします。

 

HeaderFilterStrategy

resolveProperty Placeholders (advanced)

起動時にコンポーネント自体がプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。

true

boolean

Atmo336 Websocket エンドポイントは、URI 構文を使用して設定します。

atmosphere-websocket:servicePath

以下の path パラメーターおよびクエリーパラメーターを使用します。

10.1.1. パスパラメーター(1 パラメーター):

Name説明デフォルトType

servicePath

Websocket エンドポイントに 必要な 名前

 

文字列

10.1.2. クエリーパラメーター(37 パラメーター):

Name説明デフォルトType

チャンク (共通)

このオプションが false の場合、サーブレットは HTTP ストリーミングを無効にし、応答に content-length ヘッダーを設定します。

true

boolean

disableStreamCache (common)

Servlet からの raw 入力ストリームがキャッシュされているかどうかを決定します(Camel はストリームをメモリー内/オーバーフローでファイル、ストリームキャッシング)キャッシュに読み取ります。デフォルトでは、Camel は Servlet 入力ストリームをキャッシュして、複数回ロードし、Camel がストリームからすべてのデータを取得できるようにします。ただし、raw ストリームにアクセスする必要がある場合などにこのオプションを true に設定します。たとえば、ファイルまたは他の永続ストアに直接ストリーミングする場合などに、raw ストリームにアクセスする必要がある場合などにこのオプションを true に設定します。DefaultHttpBinding は、ストリームの読み取りを複数回サポートするために、このオプションが false の場合は、リクエスト入力ストリームをストリームキャッシュにコピーし、メッセージボディーに配置します。Servlet を使用してエンドポイントをブリッジ/プロキシーする場合、このオプションを有効にしてパフォーマンスを向上することを検討してください。メッセージペイロードを複数回読み取る必要がない場合は、このオプションを有効にします。http/http4 プロデューサーは、デフォルトでは応答本体ストリームをキャッシュします。このオプションを true に設定すると、プロデューサーは応答ボディーストリームをキャッシュしませんが、応答ストリームをメッセージボディーとして使用します。

false

boolean

headerFilterStrategy (common)

カスタム HeaderFilterStrategy を使用して Camel メッセージに対してヘッダーをフィルターします。

 

HeaderFilterStrategy

sendToAll (common)

all(ブロードキャスト)に送信するか、または単一のレシーバーに送信するか。

false

boolean

transferException (common)

有効で Exchange がコンシューマー側で処理に失敗し、発生した例外が application/x-java-serialized-object のコンテンツタイプとして応答でシリアライズされたかどうか。プロデューサー側では、例外は HttpOperationFailedException ではなくデシリアライズされ、そのままスローされます。原因となる例外はシリアライズされている必要があります。これは、デフォルトではオフになっています。これを有効にすると、Java は受信データをリクエストから Java へデシリアライズし、潜在的なセキュリティーリスクとなる可能性があることに注意してください。

false

boolean

useStreaming (common)

ストリーミングがデータを複数のテキストフラグメントとして送信できるようにするには、以下を行います。

false

boolean

httpBinding (common)

カスタムの HttpBinding を使用して Camel メッセージと HttpClient 間のマッピングを制御する場合。

 

HttpBinding

非同期 (コンシューマー)

非同期モードで動作するようにコンシューマーを設定する

false

boolean

bridgeErrorHandler (consumer)

コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。

false

boolean

httpMethodRestrict (consumer)

HttpMethod が一致する場合にのみ消費(GET/POST/PUT など)を許可するために使用されます。複数のメソッドはカンマで区切って指定できます。

 

文字列

matchOnUriPrefix (consumer)

完全一致がない場合、コンシューマーが URI プレフィックスに一致することでターゲットコンシューマーの検索を試行するかどうか。

false

boolean

responseBufferSize (consumer)

javax.servlet.ServletResponse でカスタムバッファーサイズを使用します。

 

整数

servletName (consumer)

使用するサーブレットの名前

CamelServlet

文字列

attachmentMultipartBinding (consumer)

マルチパート/フォームデータを Camel Exchange で添付として自動バインドするかどうか。attachmentMultipartBinding=true オプションおよび disableStreamCache=false オプションは併用できません。AttachmentMultipartBinding を使用するには disableStreamCache を削除します。サーブレットの使用時にこの設定を有効にするためにサーブレット固有の設定を必要とする可能性があるため、これはデフォルトで無効になります。

false

boolean

eagerCheckContentAvailable (consumer)

content-length ヘッダーが 0 の場合に、HTTP リクエストにコンテンツがあるかどうかをアクティブにチェックするかどうか。これは、HTTP クライアントがストリーミングデータを送信しない場合に有効にすることができます。

false

boolean

exceptionHandler (consumer)

コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されていないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。

 

ExceptionHandler

exchangePattern (consumer)

コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。

 

ExchangePattern

optionsEnabled (consumer)

このサーブレットコンシューマーに HTTP OPTIONS を有効にするかどうかを指定します。デフォルトでは OPTIONS はオフになっています。

false

boolean

traceEnabled (consumer)

このサーブレットコンシューマーに対して HTTP TRACE を有効にするかどうかを指定します。デフォルトでは、TRACE はオフになっています。

false

boolean

bridgeEndpoint (producer)

オプションが true の場合、HttpProducer は Exchange.HTTP_URI ヘッダーを無視し、リクエストにエンドポイントの URI を使用します。また、ththExceptionOnFailure オプションを false に設定して、HttpProducer がすべての障害応答を返せるようにすることもできます。

false

boolean

connectionClose (producer)

Connection Close ヘッダーを HTTP 要求に追加する必要があるかどうかを指定します。デフォルトでは connectionClose は false です。

false

boolean

copyHeaders (producer)

このオプションが true の場合、コピーストラテジーに従って IN エクスチェンジヘッダーが OUT エクスチェンジヘッダーにコピーされます。これを false に設定し、HTTP 応答からのヘッダーのみを含めることができます(IN ヘッダーは伝播しません)。

true

boolean

httpMethod (producer)

使用する HTTP メソッドを設定します。HttpMethod ヘッダーが設定されている場合は、このオプションをオーバーライドできません。

 

HttpMethods

ignoreResponseBody (producer)

このオプションが true の場合、http プロデューサーは応答本体を読み取りせず、入力ストリームをキャッシュします。

false

boolean

preserveHostHeader (producer)

オプションが true の場合、HttpProducer は Host ヘッダーを現在のエクスチェンジ Host ヘッダーに含まれる値に設定します。これは、ダウンストリームサーバーが受け取る Host ヘッダーを使用してアップストリームクライアントが呼び出した URL を反映させたいリバースプロキシーアプリケーションで有用です。これにより、Host ヘッダーを使用するアプリケーションがプロキシーされるサービスの正確な URL を生成することができます。

false

boolean

throwExceptionOnFailure (producer)

リモートサーバーからの応答に失敗した場合に HttpOperationFailedException のスローを無効にするオプション。これにより、HTTP ステータスコードに関係なくすべての応答を取得できます。

true

boolean

cookieHandler (producer)

HTTP セッションを維持するためのクッキーハンドラーの設定

 

CookieHandler

okStatusCodeRange (producer)

正常な応答とみなされるステータスコード。値は含まれます。コンマで区切られた複数の範囲を定義できます(例: 200-204,209,301-304)。各範囲は、1 つの数字またはダッシュを含む from から でなければなりません。

200-299

文字列

urlRewrite (producer)

非推奨 の org.apache.camel.component.http.UrlRewrite への参照。ブリッジ/プロキシーエンドポイントの実行時に URL を書き換えることができるようになりました。詳細は、http://camel.apache.org/urlrewrite.htmlを参照してください。

 

UrlRewrite

mapHttpMessageBody (advanced)

このオプションが true の場合、エクスチェンジの IN エクスチェンジボディーは HTTP ボディーにマッピングされます。false に設定すると HTTP マッピングが回避されます。

true

boolean

mapHttpMessageFormUrl EncodedBody (advanced)

このオプションが true の場合、エクスチェンジの IN Exchange Form Encoded body が HTTP にマッピングされます。これを false に設定すると、HTTP Form Encoded body マッピングを回避します。

true

boolean

mapHttpMessageHeaders (advanced)

このオプションが true の場合、エクスチェンジの IN エクスチェンジヘッダーは HTTP ヘッダーにマッピングされます。false に設定すると、HTTP ヘッダーのマッピングが回避されます。

true

boolean

同期 (詳細)

同期処理を厳密に使用するか、Camel が非同期処理を使用できるようにするかを設定します(サポートされている場合)。

false

boolean

proxyAuthScheme (proxy)

使用するプロキシー認証スキーム

 

文字列

proxyHost (proxy)

使用するプロキシーホスト名

 

文字列

proxyPort (proxy)

使用するプロキシーポート

 

int

authHost (security)

NTML で使用する認証ホスト

 

文字列

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.