検索

18.4.4.2. コールバックのリモート処理について

download PDF
リモーティングクライアントがサーバーに情報を要求すると、サーバーがブロックして応答するのを待つことができますが、これは多くの場合、理想的な動作ではありません。クライアントがサーバー上の非同期イベントをリッスンし、サーバーが要求を終了するのを待っている間、他の作業を続行できるようにするために、アプリケーションは、サーバーが終了したときに通知を送信するようにサーバーに要求できます。これはコールバックと呼ばれます。あるクライアントは、別のクライアントに代わって生成された非同期イベントのリスナーとして自分自身を追加することもできます。コールバックの受信方法には、プルコールバックまたはプッシュコールバックの 2 つの異なる選択肢があります。クライアントはプルコールバックを同期的にチェックしますが、プッシュコールバックを受動的にリッスンします。
本質的に、コールバックはサーバーが送信することによって機能しますInvocationRequestクライアントに。サーバー側のコードは、コールバックが同期であるか非同期であるかに関係なく、同じように機能します。クライアントだけが違いを知る必要があります。サーバーの InvocationRequest はresponseObjectクライアントに。これは、クライアントが要求したペイロードです。これは、リクエストまたはイベント通知への直接の応答である可能性があります。
サーバーは、m_listeners物体。サーバーハンドラーに追加されたすべてのリスナーのリストが含まれています。TheServerInvocationHandlerインターフェイスには、このリストを管理できるメソッドが含まれています。
クライアントは、プルコールバックとプッシュコールバックをさまざまな方法で処理します。いずれの場合も、コールバックハンドラーを実装する必要があります。コールバックハンドラーはインターフェイスの実装です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 は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.