public static void Main() { RabbitMQConnectionSettings connectionSettings = new RabbitMQConnectionSettings { HostName = "localhost", UserName = "******", Password = "******", VirtualHost = "/", UseSsl = false }; RabbitMQEventBusSettings rabbitMQEventBusSettings = new RabbitMQEventBusSettings { Application = "PrO", Service = "Analytics", ConnectionSettings = connectionSettings, RetryMessageProcessing = new RetryMessageProcessingSettings { QueueWaitingTime = 5000, TimeProcessInQueueSeconds = 1800, AttemptCount = 10 } }; ConnectionFactory factory = RabbitMQPersistentConnection.CreateConnectionFactory(connectionSettings); RabbitMQPersistentConnection rabbitMQPersistentConnection = new RabbitMQPersistentConnection(factory, rabbitMQEventBusSettings); try { if (rabbitMQPersistentConnection.TryConnect()) { using (var model = rabbitMQPersistentConnection.CreateModel()) { string exchangeName = "PrO_events"; model.ExchangeDeclare(exchange: exchangeName, type: ExchangeType.Topic, durable: true); string queueName = "EventCS_Listener"; model.QueueDeclare(queue: queueName, durable: true, exclusive: false, autoDelete: false, arguments: null); model.QueueBind(queue: queueName, exchange: exchangeName, routingKey: "#"); Console.WriteLine(" [*] Waiting for messages."); var consumer = new EventingBasicConsumer(model); consumer.Received += (model, ea) => { var body = ea.Body.ToArray(); var message = Encoding.UTF8.GetString(body); Console.WriteLine(" [x] {0}", message); }; model.BasicConsume(queue: queueName, autoAck: true, consumer: consumer); Console.WriteLine(" Press [enter] to exit."); Console.ReadLine(); } } } catch (Exception e) { Console.WriteLine(e.Message); } rabbitMQPersistentConnection.Dispose(); }
public RabbitMQPersistentConnection(IConnectionFactory connectionFactory, RabbitMQEventBusSettings settings) { _connectionFactory = connectionFactory; _settings = settings; }