Exemple #1
0
        public void Publish(T @event)
        {
            using (var channel = _connection.CreteModel())
            {
                channel.ExchangeDeclare(Exchange, "fanout", false, false, null);

                var message = JsonSerializer.Serialize(@event);
                var body    = Encoding.UTF8.GetBytes(message);

                IBasicProperties properties = channel.CreateBasicProperties();

                properties.Persistent   = false;
                properties.DeliveryMode = 2;

                channel.ConfirmSelect();
                channel.BasicPublish(Exchange, "", true, properties, body);

                channel.WaitForConfirmsOrDie();

                channel.BasicAcks += (sender, eventArgs) =>
                {
                    Console.WriteLine("Message Sent");
                };

                channel.ConfirmSelect();
            }
        }
        public void Consume()
        {
            var channel = _connnection.CreteModel();

            channel.ExchangeDeclare(EventBusConstants.BasketCheckoutExchange, "fanout", false, false, null);
            channel.QueueDeclare(EventBusQueueConstants.BasketCheckoutOrderQueue, false, false, false, null);
            channel.QueueBind(
                queue: EventBusQueueConstants.BasketCheckoutOrderQueue
                , exchange: EventBusConstants.BasketCheckoutExchange
                , routingKey: String.Empty
                );

            var consumer = new EventingBasicConsumer(channel);

            consumer.Received += ReceivedEvent;

            channel.BasicConsume(
                queue: EventBusQueueConstants.BasketCheckoutOrderQueue
                , autoAck: true
                , consumer: consumer
                );
        }