第 4 章 示例


本章介绍如何通过示例程序使用 AMQ .NET。

如需了解更多示例,请参阅 AMQ .NET 示例套件AMQP.Net Lite 示例

4.1. 发送消息

这个客户端程序使用 <connection-url> 连接到服务器,为目标 <address> 创建一个发送程序,发送一条包含 <message-body> 的消息,关闭连接,然后退出。

示例:发送消息

namespace SimpleSend
{
    using System;
    using Amqp;                                                                 1

    class SimpleSend
    {
        static void Main(string[] args)
        {
            string    url = (args.Length > 0) ? args[0] :                       2
                "amqp://guest:guest@127.0.0.1:5672";
            string target = (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);
            SenderLink     sender = new SenderLink(session, "send-1", target);  7

            for (int i = 0; i < count; i++)
            {
                Message msg = new Message("simple " + i);                       8
                sender.Send(msg);                                               9
                Console.WriteLine("Sent: " + msg.Body.ToString());
            }

            sender.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] target 是远程主机中消息目标端点或资源的名称。
4
命令行 arg[2] count 是要发送的信息数。
5
peerAddr 是创建 AMQP 连接所需的结构。
6
创建 AMQP 连接。
7
sender 是一个可以 发送邮件的客户端 SenderLink。该链接被任意命名 send-1。使用适合您的环境中的链接名称,并帮助识别繁忙系统中的流量。链接名称不受限制,但必须在同一个会话中唯一。
8
在消息发送循环中创建一个新消息。
9
消息发送到 AMQP 对等点。
10
发送所有消息后,协议对象会按顺序关闭。

运行示例

要运行示例程序,请编译并从命令行执行。如需更多信息,请参阅 第 3 章 入门

<install-dir>\bin\Debug>simple_send "amqp://guest:guest@localhost" service_queue
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.