4.2. 接收消息
这个客户端程序使用 <connection-url>
连接到服务器,为源 <address>
创建一个接收器,并在其终止或到达 <count>
信息前接收信息。
示例:接收消息
namespace SimpleRecv { using System; using Amqp; 1 class SimpleRecv { static void Main(string[] args) { string url = (args.Length > 0) ? args[0] : 2 "amqp://guest:guest@127.0.0.1:5672"; string source = (args.Length > 1) ? args[1] : "examples"; 3 int count = (args.Length > 2) ? Convert.ToInt32(args[2]) : 10; 4 Address peerAddr = new Address(url); 5 Connection connection = new Connection(peerAddr); 6 Session session = new Session(connection); ReceiverLink receiver = new ReceiverLink(session, "recv-1", source);7 for (int i = 0; i < count; i++) { Message msg = receiver.Receive(); 8 receiver.Accept(msg); 9 Console.WriteLine("Received: " + msg.Body.ToString()); } receiver.Close(); 10 session.Close(); connection.Close(); } } }
- 1
using Amqp;
导入 Amqp 命名空间中定义的类型。AMQP 由项目引用 Amqp.Net.dll 来定义,提供与 AMQ .NET 关联的所有类、接口和值类型。- 2
- 命令行 arg[0]
url
是 AMQP 连接的主机或虚拟主机的网络地址。此字符串描述了连接传输、用户和密码凭据,以及远程主机上连接的端口号。URL 可以寻址代理、独立对等点或路由器网络的入口点。 - 3
- 命令行 arg[1]
source
是远程主机中消息源端点或资源的名称。 - 4
- 命令行 arg[2]
count
是要发送的信息数。 - 5
peerAddr
是创建 AMQP 连接所需的结构。- 6
- 创建 AMQP 连接。
- 7
receiver
是可接收消息的客户端 ReceiverLink。该链接被任意命名 recv-1。使用适合您的环境中的链接名称,并帮助识别繁忙系统中的流量。链接名称不受限制,但必须在同一个会话中唯一。- 8
- 接收消息。
- 9
- 消息被接受。这会将消息的所有权从对等传输到接收方。
- 10
- 收到所有消息后,协议对象会以有序的方式关闭。
运行示例
要运行示例程序,请编译并从命令行执行。如需更多信息,请参阅 第 3 章 入门。
<install-dir>\bin\Debug>simple_recv "amqp://guest:guest@localhost" service_queue