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}"); } } }