9.2.4.2. リモーティングコールバック


Remoting クライアントがサーバーから情報を要求すると、サーバーが応答するのをブロックして待機できますが、通常これは理想的な動作ではありません。クライアントがサーバー上の非同期イベントをリッスンし、サーバーが要求を終了するのを待機している間に他の作業を継続できるようにするため、アプリケーションは終了した時点でサーバーに対し通知を送信するように要求します。これはコールバックと呼ばれます。あるクライアントも、別のクライアントの代わりに生成された非同期イベント用のリスナーとして追加できます。コールバックを受け取る方法は、プルコールバックまたはプッシュコールバックの2つの選択肢があります。クライアントはプルコールバックを同期的にチェックしますが、パッシブにプッシュコールバックをリッスンします。
基本的に、コールバックは InvocationRequest をクライアントに送信するサーバーによって動作します。サーバー側のコードは、コールバックが同期されているか非同期であるかに関わらず、同じように動作します。クライアントのみが違いを認識する必要があります。サーバーの InvocationRequest は responseObject をクライアントに送信します。これは、クライアントがリクエストしたペイロードです。これは、リクエストまたはイベント通知に直接応答する場合があります。
サーバーは、m_listeners オブジェクトを使用してリスナーも追跡します。これには、サーバーハンドラーに追加されたリスナーの一覧が含まれます。ServerInvocationHandler インターフェースには、この一覧を管理できるメソッドが含まれます。
クライアントは各種の方法でプルおよびプッシュコールバックを処理します。いずれの場合も、コールバックハンドラーを実装する必要があります。コールバックハンドラーは、コールバックデータを処理するインターフェース org.jboss.remoting.InvokerCallbackHandler の実装です。コールバックハンドラーを実装したら、コールバックのリスナーとして自身を追加するか、プッシュコールバックのコールバックサーバーを実装します。

プルコールバック

プル要求の場合、クライアントは Client.addListener() メソッドを使用してリスナーのリストに自身を追加します。その後、サーバーを定期的にポーリングしてコールバックデータの同期配信を行います。このポーリングは Client.getCallbacks() を使用して実行されます。

コールバックのプッシュ

プッシュコールバックでは、クライアントアプリケーションが独自の InvocationHandler を実行する必要があります。そのためには、クライアント自体で Remoting サービスを実行する必要があります。これは コールバックサーバー と呼ばれます。コールバックサーバーは、受信要求を非同期的に受け入れ、要求元(この場合はサーバー)に対して処理します。クライアントのコールバックサーバーをメインサーバーに登録するには、コールバックサーバーの InvokerLocator を 2 つ目の引数として addListener メソッドに渡します。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る