B.5. Interop.Client、Interop.Server (request-response)
この例は、クライアントから文字列を受け入れ、大文字に変換し、クライアントに送信する単純なブローカーベースのサーバーを示しています。これは、2 つのコンポーネントで設定されます。
- client - poetry の行をサーバーに送信し、応答を出力します。
- server - 受信文字列を大文字に変換し、リクエスト元に返す簡単なサービス。
この例では、サーバーとクライアントは 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