Exemplo n.º 1
0
        public void Connect(string filter = "#")
        {
            try
            {
                _filter = filter;
                var factory = new ConnectionFactory {
                    Uri = _amqpUri
                };

                _conn = factory.CreateConnection();
                _amq  = new AMQClient {
                    Channel = _conn.CreateModel()
                };

                _amq.Channel.ExchangeDeclare(_amqpExchange, "topic");
                var queueName = _amq.Channel.QueueDeclare();

                // TODO Handle filtering of message
                //if (args.Length < 1)
                //{
                //    Console.Error.WriteLine("Usage: {0} [binding_key...]",
                //                            Environment.GetCommandLineArgs()[0]);
                //    Environment.ExitCode = 1;
                //    return;
                //}

                //foreach (var bindingKey in args)
                //{
                _amq.Channel.QueueBind(queueName, _amqpExchange, filter);
                //}

                //Console.WriteLine(" [*] Waiting for messages. " + "To exit press CTRL+C");

                _consumer = new QueueingBasicConsumer(_amq.Channel);
                _amq.Channel.BasicConsume(queueName, true, _consumer);

                // Start Processing in other Thread
                _running = true;
                _t       = new Thread(Process);
                _t.Start();

                Console.WriteLine("AMQConsumer started and connected to " + _amqpUri + ":" + _amqpExchange);
                Connected = true;
            }
            catch (BrokerUnreachableException)
            {
                // Retry in 1sec
                if (!_cancelled)
                {
                    Thread.Sleep(1000);
                    Connect(_filter);
                }
            }
        }
Exemplo n.º 2
0
        public void Connect(string filter = "#")
        {
            try
            {
                _filter = filter;
                var factory = new ConnectionFactory {Uri = _amqpUri};

                _conn = factory.CreateConnection();
                _amq = new AMQClient {Channel = _conn.CreateModel()};

                _amq.Channel.ExchangeDeclare(_amqpExchange, "topic");
                var queueName = _amq.Channel.QueueDeclare();

                // TODO Handle filtering of message
                //if (args.Length < 1)
                //{
                //    Console.Error.WriteLine("Usage: {0} [binding_key...]",
                //                            Environment.GetCommandLineArgs()[0]);
                //    Environment.ExitCode = 1;
                //    return;
                //}

                //foreach (var bindingKey in args)
                //{
                _amq.Channel.QueueBind(queueName, _amqpExchange, filter);
                //}

                //Console.WriteLine(" [*] Waiting for messages. " + "To exit press CTRL+C");

                _consumer = new QueueingBasicConsumer(_amq.Channel);
                _amq.Channel.BasicConsume(queueName, true, _consumer);

                // Start Processing in other Thread
                _running = true;
                _t = new Thread(Process);
                _t.Start();

                Console.WriteLine("AMQConsumer started and connected to " + _amqpUri + ":" + _amqpExchange);
                Connected = true;
            }
            catch (BrokerUnreachableException)
            {
                // Retry in 1sec
                Thread.Sleep(1000);
                Connect(_filter);
            }
        }
Exemplo n.º 3
0
        public void Connect(string filter = "#")
        {
            try
            {
                _factory = new ConnectionFactory { Uri = _amqpUri };

                _conn = _factory.CreateConnection();
                _amq = new AMQClient { Channel = _conn.CreateModel() };
                _amq.Channel.QueueDeclare(_amqpExchange, true, false, false, null);

                Console.WriteLine("AMQPublisher started and connected to queue " + _amqpUri + ":" + _amqpExchange);
                Connected = true;
            }
            catch (BrokerUnreachableException)
            {
                // TODO Log
            }
        }
Exemplo n.º 4
0
        public void Connect(string filter = "#")
        {
            try
            {
                _factory = new ConnectionFactory {
                    Uri = _amqpUri
                };

                _conn = _factory.CreateConnection();
                _amq  = new AMQClient {
                    Channel = _conn.CreateModel()
                };
                _amq.Channel.QueueDeclare(_amqpExchange, true, false, false, null);

                Console.WriteLine("AMQPublisher started and connected to queue " + _amqpUri + ":" + _amqpExchange);
                Connected = true;
            }
            catch (BrokerUnreachableException)
            {
                // TODO Log
            }
        }