Ejemplo n.º 1
0
        public void Subscribe(string routingKey, EventHandler <BasicDeliverEventArgs> receivedHandler)
        {
            using (var connection = _rabbitConnection.ConnectionFactory())
            {
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare(queue: routingKey,
                                         durable: false,
                                         exclusive: false,
                                         autoDelete: false,
                                         arguments: null);

                    var consumer = new EventingBasicConsumer(channel);

                    consumer.Received += receivedHandler;

                    channel.BasicConsume(queue: routingKey, autoAck: true, consumer: consumer);

                    Console.ReadLine();
                }
            }
        }
        public void PublishQueen <T>(string routingKey, T data) where T : QueenModel, new()
        {
            using (var connection = _rabbitConnection.ConnectionFactory())
            {
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare(queue: routingKey,
                                         durable: false,
                                         exclusive: false,
                                         autoDelete: false,
                                         arguments: null);

                    string message = JsonConvert.SerializeObject(data);
                    var    body    = Encoding.UTF8.GetBytes(message);

                    channel.BasicPublish(exchange: "",
                                         routingKey: routingKey,
                                         basicProperties: null,
                                         body: body);
                }
            }
        }