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(); } } }
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(); } } }