예제 #1
0
        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();
                }
            }
        }
예제 #2
0
        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();
                }
            }
        }
예제 #3
0
 public void Publish(string queue_name, Transactions data)
 {
     using (var conn = _conn.CreateConnection())
     {
         using (var channel = conn.CreateModel())
         {
             channel.QueueDeclare(queue: queue_name,
                                  durable: false,
                                  exclusive: false,
                                  autoDelete: false,
                                  arguments: null);
             var message = data;
             var body    = Extensionz.ToByteArray(data);
             channel.BasicPublish(exchange: "",
                                  routingKey: queue_name,
                                  basicProperties: null,
                                  body: body);
         }
     }
 }
예제 #4
0
        public void Pub(string exchange_name, Transactions data)
        {
            using (var conn = _conn.CreateConnection())
            {
                using (var channel = conn.CreateModel())
                {
                    channel.ExchangeDeclare(exchange: exchange_name, type: ExchangeType.Fanout);


                    //var properties = channel.CreateBasicProperties();
                    //properties.Persistent = true;
                    var message = data;
                    var body    = Extensionz.ToByteArray(data);
                    channel.BasicPublish(exchange: exchange_name,
                                         routingKey: "",
                                         basicProperties: null,
                                         body: body);
                }
            }
        }