示例#1
0
        private static void Main(string[] args)
        {
            using RabbitMQHelper mq = new(new string[] { "192.168.181.191" });
            mq.UserName             = "******";
            mq.Password             = "******";
            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}");

                channel.BasicAck(
                    deliveryTag: ea.DeliveryTag,
                    // 是否一次性确认多条数据
                    multiple: false);
            };
            channel.BasicConsume(queue: queueName,
                                 autoAck: false,
                                 consumer: consumer);
#endif
            Console.ReadLine();
        }
示例#2
0
        private static void Main(string[] args)
        {
            using RabbitMQHelper mq = new(new string[] { "192.168.181.191" });
            mq.UserName             = "******";
            mq.Password             = "******";
            mq.Port = 5672;

            Console.WriteLine("input queueName...");
            var input = Console.ReadLine();

            switch (input)
            {
            case "1":
                mq.Received += (result) =>
                {
                    Console.WriteLine($"message:{result.Body}");
                    result.Commit();
                };
                mq.Listen("test.fanout.queue1", new ConsumeQueueOptions {
                    AutoAck = false
                });
                Console.ReadLine();
                break;

            case "2":
                mq.Received += (result) =>
                {
                    Console.WriteLine($"message:{result.Body}");
                    result.Commit();
                };
                mq.Listen("test.fanout.queue2", new ConsumeQueueOptions {
                    AutoAck = false
                });
                Console.ReadLine();
                break;
            }
#if rabbitMQClient
            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: "test.fanout.queue1", 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
        }
示例#3
0
        private static void Main(string[] args)
        {
            Console.WriteLine($"{nameof(SimpleSub)}:");

            using RabbitMQHelper mq = new(new string[] { "192.168.181.191" });
            mq.UserName             = "******";
            mq.Password             = "******";
            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();
        }
示例#4
0
 public void Initialize()
 {
     _delegatedConsumer = new MockBaseConsumer <object>();
     _result            = new object();
     _result2           = new object();
     _error             = new Exception();
     _baseConsumer      = new BaseConsumerImpl <object>(
         (newResult, isLast) =>
     {
         _delegatedConsumer.OnNewResult(newResult, isLast);
     },
         (error) =>
     {
         _delegatedConsumer.OnFailure(error);
     },
         () =>
     {
         _delegatedConsumer.OnCancellation();
     },
         (_) => { });
 }
 public static void Main(string[] args)
 {
     if (args.Length > 0)
     {
         if (args[0] == "creating")
         {
             while (true)
             {
                 Start  start = new Start();
                 Thread threadCreateEntity = new Thread(start.CreatingEntity);
                 threadCreateEntity.Start();
                 Console.WriteLine("Entitiler kuyruğa gönderildi...");
                 Console.Write("Yeni bir gönderim yapmak istiyor musunuz? EVET (E) / HAYIR (H)");
                 string selection = Console.ReadLine();
                 if (selection.ToLower() == "h")
                 {
                     Environment.Exit(0);
                 }
             }
         }
         else
         {
             if (args[0] == "product")
             {
                 BaseConsumer <Product> productConsumer = new BaseConsumer <Product>(args[0]);
                 Thread threadProductConsumer           = new Thread(productConsumer.Consume);
                 threadProductConsumer.Start();
             }
             else if (args[0] == "supplier")
             {
                 BaseConsumer <Supplier> supplierConsumer = new BaseConsumer <Supplier>(args[0]);
                 Thread threadSupplierConsumer            = new Thread(supplierConsumer.Consume);
                 threadSupplierConsumer.Start();
             }
         }
     }
 }