RabbitMQ/RabbitMQConsumer/SimpleSub.cs

(开头部分) 1KB

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

namespace RabbitMQConsumer
{
    using CommonLib.RabbitMQ;

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

    using System;
    using System.Text;

    static class SimpleSub
    {
        private static readonly string queueName = "test.simple.queue";

        private static void Main(string[] args)
        {
            Console.WriteLine($"{nameof(SimpleSub)}:");

            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(queueName, new ConsumeQueueOptions { AutoAck = false});

#if rabbitMQClient
            // RabbitMQ连接工厂
            ConnectionFactory factory = BaseConsumer.CreateRabbitMqConnection();

            // 建立连接
            using IConnection connection = factory.CreateConnection();

            // 创建信道
            using IModel channel = connection.CreateModel();

            EventingBasicConsumer consumer = new(channel);

            // 每次只能向消费者发送一条信息,在消费者未确认之前,不再向它发送信息
            channel.BasicQos(0, 1, false);

            channel.BasicConsume(queue: queueName, autoAck: false, consumer: consumer);

            // 绑定消息接收后的事件委托
            consumer.Received += (model, message) =>
            {
                Console.WriteLine($"Message:{Encoding.UTF8.GetString(message.Body.ToArray())}");

                channel.BasicAck(
                    deliveryTag: message.DeliveryTag,
                    // 是否一次性确认多条数据
                    multiple: false);
            };
#endif
            Console.ReadLine();
        }
后面还有 2 行代码,解锁后查看完整代码

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

AI 解读

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

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