需要的包

命令:

NuGet\Install-Package RabbitMQ.Client -version 3.4.3

1、

/// <summary>
        /// 得到mq连接
        /// </summary>
        /// <returns></returns>
        public ConnectionFactory GetConnetion()
        {
            connection = new ConnectionFactory();
            connection.UserName = RabbitMQConnection.UserName;
            connection.Password = RabbitMQConnection.Password;
            connection.Port = RabbitMQConnection.Port;
            connection.VirtualHost = RabbitMQConnection.VirtualHost;
            connection.HostName = RabbitMQConnection.HostName;

            return connection;
        }

2、

/// <summary>
        /// 主题
        /// </summary>
        private void TopicBinding()
        {
            string queueName = "testqueue";
            string exchangeName = "testTopicexchange";
            string routingkey = "test.Topic.*";

            ConnectionFactory factory = new InitRabbiMQ().GetConnetion();

            IConnection connection = factory.CreateConnection();
            IModel channel = connection.CreateModel();

            //有key
            channel.ExchangeDeclare(exchangeName, ExchangeType.Topic);
            channel.QueueDeclare(queueName, true, false, false, null);
            channel.QueueBind(queueName, exchangeName, routingkey);
            channel.BasicQos(0, 1, false);

            EventingBasicConsumer consumers = new EventingBasicConsumer(channel);

            consumers.Received += (model, ea) =>
            {
                byte[] body = ea.Body.ToArray();

                if (body != null
                && body.Length > 0)
                {
                    new RabbitTriggerEvent().OnMessage(TestOnMessage, Encoding.UTF8.GetString(body) + ea.RoutingKey);
                }

                channel.BasicAck(ea.DeliveryTag, false);
            };

            channel.BasicConsume(queueName, false, consumers);

            LogManage.Info("测试观察者绑定已绑定队列");
        }

3、仅此而已

更多推荐