public IChannel GetReceivingTopicChannel(string exchange, string routingKey, IConsumeMessages receiver) { var channel = GetInstance(); channel.ExchangeDeclare(exchange, "topic"); string queueName = channel.QueueDeclare(); channel.QueueBind(queueName, exchange, routingKey); IConsumer consumer = channel.GetConsumer(); consumer.AddReceiver(receiver); channel.BasicConsume(queueName, false, consumer); return channel; }
public void AddReceiver(IConsumeMessages receiver) { Consumer.Received += (model, ea) => { string body = Encoding.UTF8.GetString(ea.Body); string routingKey = ea.RoutingKey; var message = new Message(body, routingKey); receiver.Consume(message); }; }
public Service(IReceiveTopicsFactory topicReceiverFactory, IConsumeMessages consumer) { _topicReceiverFactory = topicReceiverFactory; _consumer = consumer; }