コード例 #1
0
ファイル: Factories.cs プロジェクト: echenim/MBFactories
        public void Consumer(string queue_name)
        {
            using (var conn = _conn.CreateConnection())
            {
                using (var channel = conn.CreateModel())
                {
                    channel.QueueDeclare(queue: queue_name,
                                         durable: false,
                                         exclusive: false,
                                         autoDelete: false,
                                         arguments: null);

                    var consumer = new EventingBasicConsumer(channel);
                    consumer.Received += (model, ea) =>
                    {
                        var body    = ea.Body.ToArray();
                        var message = Extensionz.ToObject(body.ToArray());
                        channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false);
                        Console.WriteLine($"{message.Id} | {message.AccountIdentifier} | {message.AccountNumber} | {message.Amount} | {message.TransactionFee} | {message.TransactionDate}");
                    };
                    channel.BasicConsume(queue: queue_name,
                                         autoAck: false,
                                         consumer: consumer);

                    Console.WriteLine(" Press [enter] to exit.");
                    Console.ReadLine();
                }
            }
        }
コード例 #2
0
ファイル: PubSub.cs プロジェクト: echenim/MBFactories
        public void Sub(string exchange_name)
        {
            using (var conn = _conn.CreateConnection())
            {
                using (var channel = conn.CreateModel())
                {
                    channel.ExchangeDeclare(exchange: exchange_name, type: ExchangeType.Fanout);

                    var queue_name = channel.QueueDeclare().QueueName;

                    channel.QueueBind(queue: queue_name,
                                      exchange: exchange_name,
                                      routingKey: "");

                    var consumer = new EventingBasicConsumer(channel);
                    consumer.Received += (model, ea) =>
                    {
                        var body    = ea.Body.ToArray();
                        var message = Extensionz.ToObject(body);
                        // channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false);
                        Console.WriteLine($"{message.Id} | {message.AccountIdentifier} | {message.AccountNumber} | {message.Amount} | {message.TransactionFee} | {message.TransactionDate}");
                    };
                    channel.BasicConsume(queue: queue_name,
                                         autoAck: true,
                                         consumer: consumer);

                    Console.WriteLine(" Press [enter] to exit.");
                    Console.ReadLine();
                }
            }
        }