EasyNetQ使用方法示例附源码
2024-10-16
31
使用Nuget安装EasyNetQ
本示例源码下载 http://www.leavescn.com/Files/downloads/MQTest.zip
创建连接:
使用EasyNetQ连接RabbitMQ,是在应用程序启动时创建一个IBus对象,并且,在应用程序关闭时释放该对象。
RabbitMQ连接是基于IBus接口的,当IBus中的方法被调用,连接才会开启。
发布消息Publish
bus1 = RabbitHutch.CreateBus(connectionStr);
var message = new MyMessage { Text = richTextBox1.Text };
//发布消息
bus1.Publish(message);
订阅消息Subscribe
bus2 = RabbitHutch.CreateBus(connectionStr);
//订阅消息
//点击按钮订阅,订阅后只要发布新的消息,收到消息后就会执行修改richTextBox2.Text的值
//用同一个subscribeid订阅了同一种消息类型两次或者多次,RabbitMQ会轮着给两个订阅发消息(两个订阅不会同时收到消息)
bus2.Subscribe<MyMessage>("subscribeid_1", (msg) => {
string value = msg.Text;
richTextBox2.Text += value+"\r\n";
});
可以自己定义队列名称的发送消息Send/接受消息Receive
发送消息Send
bus1 = RabbitHutch.CreateBus(connectionStr);
//发送端代码
bus1.Send("queuename_1", new MyMessage { Text = richTextBox3.Text });
接受消息Receive
bus2 = RabbitHutch.CreateBus(connectionStr);
bus2.Receive<MyMessage>("queuename_1", message => richTextBox2.Text += message.Text + "\r\n");
程序结束的时候关闭EasyNetQ使用的连接,渠道,消费者和所有其他资源。本示例中在窗口关闭时,关闭连接。
private void Form1_FormClosed_1(object sender, FormClosedEventArgs e)
{
if (bus1 != null)
{
bus1.Dispose();
}
if (bus2 != null)
{
bus2.Dispose();
}
if (bus3 != null)
{
bus3.Dispose();
}
}
以上是EasyNetQ的publish,Subscribe,Send和Receive基本用法。
登录RabbitMQ管理后台队列里可以看到
执行bus2.Subscribe<MyMessage>("subscribeid_1", (msg) =>{});订阅时,如果是第一次订阅,Queues队列里会增加一个名为MQTest.MyMessage, MQTest_subscribeid_1的队列。
执行bus1.Send("queuename_1", obj);发送时,如果不存在queuename_1队列时,会增加一个名为queuename_1的队列。
执行bus5.Receive<MyMessage>("queuename_2", message => {});接受消息时,如果不存在queuename_2队列时,会新增一个名为queuename_2的队列。
更新于:1个月前赞一波!
相关文章
文章评论
评论问答