rabbit mq c#

rabbit mq c#

第一步连接工厂类:

首先创建一个连接工厂:RabbitMQ-Common类库用于创建连接
 public static IConnection GetConnection() {
            var factory = new ConnectionFactory
            {
                HostName = "127.0.0.1",//服务器地址
                Port = 5672,//端口号
                UserName = "gerry",
                Password = "gerry",
                VirtualHost = "/"//队列地址(虚拟主机名)
            };
            return factory.CreateConnection();
        }

发送消息(生产消息)

   public static void SendMessage() {
            string queueName = "normal";
            using (var connection = RabbitMQHelper.GetConnection()) { //获取连接
                using (var channel = connection.CreateModel())//创建信道
                {
                    channel.QueueDeclare(queueName, false, false, false, null);//此处没有绑定交换机,会使用默认的交换机
                        while (true) {
                        string message = "这里是要传递的消息";
                        var body = Encoding.UTF8.GetBytes(message);//将消息转换成字符进行发送
                        ////exchange:要将消息发送到的Exchange(交换器) 
                        ///routingKey: 路由Key 
                        ///mandatory: 如果为true, 消息不能路由到指定的队列时,会触发channel.BasicReturn事件,如果为false,则broker会直接将消息丢弃。
                        ///(channel.BasicReturn += Channel_BasicReturn;)
                        ///basicProperties: 其它的一些属性 body:消息内
                        channel.BasicPublish("",queueName ,true,null,body);
                        Thread.Sleep(1000);//等待消息发送
                        Console.WriteLine("发送成功");


                    }
                }
            }
        }

消费消息(消费者)

  //消费者
        public static void ReceiveMessage()
        {
            string queueName = "normal";
            using (var connection = RabbitMQHelper.GetConnection())
            { //获取连接
                using (var channel = connection.CreateModel())//创建信道
                {
                    channel.QueueDeclare(queueName, false, false, false, null);
                    var consumer = new EventingBasicConsumer(channel);
                    consumer.Received += (model, ea) =>
                    {
                        var message = Encoding.UTF8.GetString(ea.Body.ToArray());
                        Console.WriteLine(" [x] Received {0}", message);
                    };//回调
                    channel.BasicConsume(queue: queueName,
                                autoAck: true,
                                consumer: consumer);
                }
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值