diff --git a/RabbitMqTest/OriginalTest.cs b/RabbitMqTest/OriginalTest.cs
index a40a948..3c6fc98 100644
--- a/RabbitMqTest/OriginalTest.cs
+++ b/RabbitMqTest/OriginalTest.cs
@@ -20,7 +20,7 @@ namespace RabbitMqTest
using var channel = GetChannel();
channel.QueueDeclare("hello",false,false,false,null);
var consumer = new EventingBasicConsumer(channel);
- consumer.Received+=(model,args) => {
+ consumer.Received += (model,args) => {
var msg = Encoding.UTF8.GetString(args.Body.ToArray());
Console.WriteLine($"Received message 1 {msg}");
//Assert.IsTrue(msg==smsg1 || msg==smsg2);
@@ -33,7 +33,7 @@ namespace RabbitMqTest
//消费者2
using var channel2 = GetChannel();
var consumer2 = new EventingBasicConsumer(channel2);
- consumer2.Received+=(model,args) => {
+ consumer2.Received += (model,args) => {
var msg = Encoding.UTF8.GetString(args.Body.ToArray());
Console.WriteLine($"Received message 2 {msg}");
//Assert.IsTrue(msg==smsg1||msg==smsg2);
@@ -71,7 +71,7 @@ namespace RabbitMqTest
Console.WriteLine($"创建的临时队列名1:{queueName1}");
channel1.QueueBind(queueName1,exchangeName,"",null);
var consumer1 = new EventingBasicConsumer(channel1);
- consumer1.Received+=(m,a) => {
+ consumer1.Received += (m,a) => {
var msgs = Encoding.UTF8.GetString(a.Body.ToArray());
Console.WriteLine($"Received message 1 {msgs}");
Assert.AreEqual(msgs,smsg);
@@ -87,7 +87,7 @@ namespace RabbitMqTest
Console.WriteLine($"创建的临时队列名2:{queueName2}");
channel2.QueueBind(queueName2,exchangeName,"",null);
var consumer2 = new EventingBasicConsumer(channel2);
- consumer2.Received+=(m,a) => {
+ consumer2.Received += (m,a) => {
var msgs = Encoding.UTF8.GetString(a.Body.ToArray());
Console.WriteLine($"Received message 2 {msgs}");
Assert.AreEqual(msgs,smsg);
@@ -114,7 +114,7 @@ namespace RabbitMqTest
//消费者1
using var channel1 = GetChannel();
var consumer1 = new EventingBasicConsumer(channel1);
- consumer1.Received+=(m,a) => {
+ consumer1.Received += (m,a) => {
var msgs = Encoding.UTF8.GetString(a.Body.ToArray());
Console.WriteLine($"Received message 1 {msgs}");
Assert.AreEqual(msgs,smsg);
@@ -129,7 +129,7 @@ namespace RabbitMqTest
//消费者2
using var channel2 = GetChannel();
var consumer2 = new EventingBasicConsumer(channel2);
- consumer2.Received+=(m,a) => {
+ consumer2.Received += (m,a) => {
var msgs = Encoding.UTF8.GetString(a.Body.ToArray());
Console.WriteLine($"Received message 2 {msgs}");
Assert.AreEqual(msgs,smsg);
@@ -138,5 +138,46 @@ namespace RabbitMqTest
}
+ ///
+ /// 发送到exchange后,exchange需要确认.Confirm模式
+ ///
+ [TestMethod("exchangeConfirm")]
+ public void ExchangeConfirm() {
+ var exchangeName = "tempExchange";
+
+ var channel = GetChannel();
+ channel.ExchangeDeclare(exchangeName,ExchangeType.Fanout,false,true,null);
+ channel.ConfirmSelect();
+ channel.BasicPublish(exchangeName,"",null,RandomMsgBytes());
+ if(channel.WaitForConfirms()) {
+ Console.WriteLine("交换机确认成功!");
+ }
+ else {
+ Console.WriteLine("交换机确认失败!");
+ Assert.Fail();
+ }
+ }
+
+ ///
+ /// 发送到exchange后,exchange需要确认.事务模式
+ ///
+ [TestMethod("exchangeTx")]
+ public void ExchangeConfirm2() {
+ var exchangeName = "tempExchange";
+
+ using var channel = GetChannel();
+ channel.ExchangeDeclare(exchangeName,ExchangeType.Fanout,false,true,null);
+ try {
+ channel.TxSelect();
+ channel.BasicPublish(exchangeName,"",null,RandomMsgBytes());
+ channel.TxCommit();
+ Console.WriteLine("交换机确认成功!");
+ }
+ catch(Exception ex) {
+ Console.WriteLine("交换机确认失败!");
+ Assert.Fail();
+ }
+ }
}
+
}
diff --git a/RabbitMqTest/RabbitmqBase.cs b/RabbitMqTest/RabbitmqBase.cs
index 6a0a157..1f300bd 100644
--- a/RabbitMqTest/RabbitmqBase.cs
+++ b/RabbitMqTest/RabbitmqBase.cs
@@ -34,6 +34,16 @@ namespace RabbitMqTest
return sb.ToString();
}
+ ///
+ /// 生成随机消息字节数组
+ ///
+ ///
+ ///
+ protected virtual Byte[] RandomMsgBytes(int len = 10) {
+ var str = RandomString(len);
+ return Encoding.UTF8.GetBytes(str);
+ }
+
///
/// 创建队列
///