B.5. Interop.Client, Interop.Server (リクエスト - レスポンス)
この例は、クライアントから文字列を受け入れ、大文字に変換し、クライアントに送る単純なブローカーベースのサーバーを示しています。これには 2 つのコンポーネントがあります。
- クライアント - 一行の詩をサーバーに送り、レスポンスを出力します。
- サーバー - 受信文字列を大文字に変換し、リクエスト元に返す簡単なサービス。
この例では、サーバーとクライアントは service_queue
という名前のブローカーのサービスエンドポイントを共有します。サーバーは、サービスエンドポイントでメッセージをリッスンします。クライアントは、一時的に動的な ReplyTo キューを作成し、一時的な名前をリクエストに埋め込み、リクエストをサーバーに送信します。各リクエストを受信して処理した後、サーバーがクライアントの一時的な ReplyTo アドレスに返信を送信します。
Interop.Client コマンドラインオプション
Command line: Interop.Client [peerURI [loopcount]] Default: Interop.Client amqp://guest:guest@localhost:5672 1
Interop.Server コマンドラインオプション
Command line: Interop.Server [peerURI] Default: Interop.Server amqp://guest:guest@localhost:5672
Interop.Client、Interop.Server サンプル呼び出し
プログラムは、次のコマンドラインで起動できます。
$ Interop.Server.exe amqp://guest:guest@localhost:5672 $ Interop.Client.exe amqp://guest:guest@localhost:5672
PeerToPeer.Server は、コマンドラインで指定されたアドレスにリスナーを作成します。このアドレスは、受信接続をリッスンする ContainerHost クラスオブジェクトを初期化します。受信メッセージは非同期で RequestProcessor クラスオブジェクトに転送されます。
PeerToPeer.Client はサーバーへの接続を開き、サーバーへのメッセージの送信を開始します。
PeerToPeer.Client コマンドラインオプション
Command line: PeerToPeer.Client [peerURI] Default: PeerToPeer.Client amqp://guest:guest@localhost:5672
PeerToPeer.Server コマンドラインオプション
Command line: PeerToPeer.Server [peerURI] Default: PeerToPeer.Server amqp://guest:guest@localhost:5672
PeerToPeer.Client、PeerToPeer.Server サンプル呼び出し
1 つのウィンドウで PeerToPeer.Server を実行します。
$ PeerToPeer.Server.exe Container host is listening on 127.0.0.1:5672 Request processor is registered on request_processor Press enter key to exist... Received a request hello 0 ...
別のウィンドウで PeerToPeer.Client を実行します。PeerToPeer.Client は、サーバーにメッセージを送信し、受信したレスポンスを出力します。
$ PeerToPeer.Client.exe Running request client... Sent request properties(message-id:command-request,reply-to:client-57db8f65-6e3d-474c-a05e-8ca63b69d7c0) body hello 0 Received response: body reply0 Received response: body reply1 ^C