B.5. Interop.Client, Interop.Server(request-response)
这个示例显示了一个基于代理的简单服务器,它将接受来自客户端的字符串,将它们转换为大写,并将它们发回到客户端。它有两个组成部分:
- client - 将位置行发送到服务器并打印响应.
- 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 示例调用
在一个窗口中运行 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