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