Esempio n. 1
0
        private void button2_Click(object sender, EventArgs e)
        {
            PublishRabbitMQ mo      = new PublishRabbitMQ("10.113.7.59", "chaint", "chaint", "wytExchange", "wytRouteKey", "wytQueue", true);
            string          message = string.Format("{0}--Hello World!", 1);
            bool            isright = mo.PublishMessage(message, 1);

            return;

            var factory = new ConnectionFactory();

            factory.HostName = "10.113.7.234";                  //主机名,Rabbit会拿这个IP生成一个endpoint,这个很熟悉吧,就是socket绑定的那个终结点。
            factory.UserName = "******";                        //默认用户名,用户可以在服务端自定义创建,有相关命令行
            factory.Password = "******";                        //默认密码

            using (var connection = factory.CreateConnection()) //连接服务器,即正在创建终结点。
            {
                //创建一个通道,这个就是Rabbit自己定义的规则了,如果自己写消息队列,这个就可以开脑洞设计了
                //这里Rabbit的玩法就是一个通道channel下包含多个队列Queue
                using (var channel = connection.CreateModel())
                {
                    //rabbitmq持久化分为三个部分: 交换器的持久化、队列的持久化和消息的持久化
                    //将durable参数设置为true实现交换器的持久化和队列的持久化
                    channel.QueueDeclare("kibaQueue", true, false, false, null);                         //创建一个名称为kibaqueue的消息队列
                    var properties = channel.CreateBasicProperties();
                    properties.DeliveryMode = 1;                                                         //消息本身也需要被持久化,可以在投递消息前设置AMQP.BasicProperties的属性deliveryMode为2即可
                    string message1 = "I am Kiba518";                                                    //传递的消息内容
                    channel.BasicPublish("", "kibaQueue", properties, Encoding.UTF8.GetBytes(message1)); //生产消息
                    Console.WriteLine($"Send:{message1}");
                }
            }
        }