4.2. 接收消息
这个客户端程序使用 <connection-url> 连接到服务器,为源 <address> 创建一个接收器,并在其终止或到达 <count> 信息前接收信息。
示例:接收消息
namespace SimpleRecv
{
using System;
using Amqp;
class SimpleRecv
{
static void Main(string[] args)
{
string url = (args.Length > 0) ? args[0] :
"amqp://guest:guest@127.0.0.1:5672";
string source = (args.Length > 1) ? args[1] : "examples";
int count = (args.Length > 2) ? Convert.ToInt32(args[2]) : 10;
Address peerAddr = new Address(url);
Connection connection = new Connection(peerAddr);
Session session = new Session(connection);
ReceiverLink receiver = new ReceiverLink(session, "recv-1", source);
for (int i = 0; i < count; i++)
{
Message msg = receiver.Receive();
receiver.Accept(msg);
Console.WriteLine("Received: " + msg.Body.ToString());
}
receiver.Close();
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