搜索

4.2. 接收消息

download PDF

这个客户端程序使用 <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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.