Example #1
0
        public override void Receive(Action <string> action)
        {
            using (var connection = MQFactory.CreateRabbitMQConnection())
            {
                using (var channel = connection.CreateModel())
                {
                    var queueName = channel.QueueDeclare().QueueName;

                    channel.ExchangeDeclare(exchange: "Orders", type: "fanout");

                    channel.QueueBind(queue: queueName,
                                      exchange: "Orders",
                                      routingKey: "");

                    var consumer = new EventingBasicConsumer(channel);
                    consumer.Received += (model, ea) =>
                    {
                        var body    = ea.Body;
                        var message = Encoding.UTF8.GetString(body);

                        //此处处理接收到的消息
                        action(message);
                        //Console.WriteLine(" [x] {0}", message);
                    };
                    channel.BasicConsume(queue: queueName,
                                         noAck: false,
                                         consumer: consumer);
                }
            }
        }
        public override void Send(string message)
        {
            using (var connection = MQFactory.CreateRabbitMQConnection())
            {
                using (var channel = connection.CreateModel())
                {
                    channel.ExchangeDeclare(exchange: "Orders", type: "fanout");

                    var body = Encoding.UTF8.GetBytes(message);
                    channel.BasicPublish(exchange: "logs",
                                         routingKey: "",
                                         basicProperties: null,
                                         body: body);
                }
            }
        }