easyNetq demo
本demo包含一个类库,2个console程序
1.新建类库 MQHelper,控制台程序 consumer和proc ,控制台程序引用MQHelper
2.使用nuget安装easynwtq 和rabbitmq.client.dll ,执行Install-Package EasyNetQ -Version 1.1.3.500
会自动安装 easynwtq和依赖项rabbitmq.client.dll
3.MQHelper
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using EasyNetQ; namespace MQHelper { public class MQManage { /// <summary> /// 发送消息 /// </summary> public static void Publish(MyMessage msg) { //// 创建消息bus IBus bus = RabbitHutch.CreateBus("host=192.168.1.1:5672;virtualHost=as;username=123;password=123"); try { bus.Publish(msg, x => x.WithTopic(msg.MessageRouter)); } catch (EasyNetQException ex) { //处理连接消息服务器异常 } bus.Dispose();//与数据库connection类似,使用后记得销毁bus对象 } /// <summary> /// 接收消息 /// </summary> /// <param name="msg"></param> public static void Subscribe(MyMessage msg) { //// 创建消息bus IBus bus = RabbitHutch.CreateBus("host=192.168.1.1:5672;virtualHost=as;username=123;password=123"); try { bus.Subscribe<MyMessage>(msg.MessageRouter, message => Console.WriteLine(message.MessageBody), x => x.WithTopic(msg.MessageRouter)); } catch (EasyNetQException ex) { //处理连接消息服务器异常 } } } public class MyMessage { public string MessageID { get; set; } public string MessageTitle { get; set; } public string MessageBody { get; set; } public string MessageRouter { get; set; } } }
4.proc 生产程序

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace proc { class Program { static void Main(string[] args) { Console.WriteLine("proc2"); //// 创建消息bus while (true) { MQHelper.MQManage.Publish(new MQHelper.MyMessage { MessageID = "2", MessageRouter = "ro2", MessageBody ="当前时间="+DateTime.Now.ToString(), MessageTitle = "title" + DateTime.Now }); Thread.Sleep(3000); } } } }
5.consumer 消费程序

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace consumer { class Program { static void Main(string[] args) { Console.WriteLine("consumer2"); //// 创建消息bus MQHelper.MQManage.Subscribe(new MQHelper.MyMessage { MessageID = "2", MessageRouter = "ro2" //MessageBody=DateTime.Now.ToString(), //MessageTitle="title"+DateTime.Now }); } } }
6.先bin/debug 里先打开 consumer.exe ,再打开proc.exe 就能看到效果了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2016-07-08 Session保存到指定数据库中