RabbitMQ/RabbitMQConsumer/TopicSub.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace RabbitMQConsumer
{
    using CommonLib.RabbitMQ;

    using RabbitMQ.Client;
    using RabbitMQ.Client.Events;

    using System;
    using System.Text;

    internal static class TopicConsumer
    {
        private static readonly string exchangeName = $"test.exchange.topic";

        private static void Main(string[] args)
        {
            using RabbitMQHelper mq = new(new string[] { "192.168.181.191" });
            mq.UserName = "guest";
            mq.Password = "guest";
            mq.Port = 5672;

            mq.Received += (result) =>
            {
                Console.WriteLine($"message:{result.Body}");
                result.Commit();
            };
            mq.Listen(exchangeName, "test.topic.queue2", new ExchangeConsumeQueueOptions { AutoAck = false });
#if rabbitMQClient
            Console.WriteLine($"{nameof(TopicConsumer)}:");
            // RabbitMQ连接工厂
            ConnectionFactory factory = BaseConsumer.CreateRabbitMqConnection();
            // 建立连接
            using IConnection connection = factory.CreateConnection();
            // 创建信道
            using IModel channel = connection.CreateModel();

            string exchangeName = $"testExchange_topic";

            string routeKey = "testExchange_routeKey.*";

            //声明交换机并指定类型
            channel.ExchangeDeclare(exchange: exchangeName, type: "topic");

            string queueName = $"{exchangeName}_{nameof(TopicConsumer)}";
            // 声明队列
            channel.QueueDeclare(queue: queueName, durable: false, exclusive: false, autoDelete: false, arguments: null);

            // 将队列与交换机进行绑定
            channel.QueueBind(queue: queueName, exchange: exchangeName, routingKey: routeKey);

            EventingBasicConsumer consumer = new(channel);

            channel.BasicQos(0, 1, false);

            consumer.Received += (model, ea) =>
            {
                string message =
                       Encoding.UTF8.GetString(ea.Body.ToArray());
                Console.WriteLine($"Message:{message}");

后面还有 13 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。