介绍
怎么在。net中使用RabbitMQ发送即时消息?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强>步骤如下:强>,
1。使用VS的NuGet安装包管理工具安装RabbitMQ。客户:
2。生产者端代码:
using 系统; using System.Collections.Generic; using 来; using 包含; using System.Threading.Tasks; using RabbitMQ.Client; namespace RabbitMQ.Producter { class 程序 ,{ ,///& lt; summary> ,///连接配置 ,///& lt;/summary> ,private static  readonly ConnectionFactory  rabbitMqFactory =, new ConnectionFactory () ,{ 主机名才能=發ocalhost", UserName =,才能“guest", Password =,才能“guest", 时间=Port 才能;5672年,//VirtualHost 才能=,“JentVirtualHost" ,}; ,///& lt; summary> ,///路由名称 ,///& lt;/summary> ,const string ExchangeName =,“Jent.Exchange"; ,///& lt; summary> ,///队列名称 ,///& lt;/summary> ,const string QueueName =,“Jent.Queue"; ,static void Main (string [], args) ,{ DirectExchangeSendMsg才能(); Console.WriteLine才能(“按任意键退出程序!“); Console.ReadKey才能(); ,} ,///& lt; summary> ,///单点精确路由模式 ,///& lt;/summary> ,private static void  DirectExchangeSendMsg () ,{ using 才能;(IConnection conn =, rabbitMqFactory.CreateConnection ()) {才能 using 才能;(IModel channel =, conn.CreateModel ()) {才能 ,,channel.ExchangeDeclare (ExchangeName,“direct",,耐用,,真的,,autoDelete:,假,,参数:,null); ,,channel.QueueDeclare (QueueName,耐用:,真的,,独家:,假,,autoDelete:,假,,参数:,null); ,,channel.QueueBind (QueueName, ExchangeName,, routingKey:, QueueName); ,,var props =, channel.CreateBasicProperties (); ,,props.Persistent =,真的; ,,Console.WriteLine(“请输入需要发送的消息:“); ,,string vadata =, Console.ReadLine (); ,,while (vadata !=,“exit") ,,{ ,,var msgBody =, Encoding.UTF8.GetBytes (vadata); ,,channel.BasicPublish(交换:ExchangeName,, routingKey:, QueueName,, basicProperties:,道具,,身体:,msgBody); ,,Console.WriteLine (string.Format(“发送时间:{0},发送完毕,输入出口退出消息发送,,,DateTime.Now.ToString (“yyyy-MM-dd  HH: mm: ss"))); ,,vadata =, Console.ReadLine (); ,,} ,,} ,,} ,} ,} }
3。消费者端代码:
using 系统; using System.Collections.Generic; using 来; using 包含; using System.Threading.Tasks; using RabbitMQ.Client; namespace RabbitMQ.Consumer { class 程序 ,{ ,///& lt; summary> ,///连接配置 ,///& lt;/summary> ,private static  readonly ConnectionFactory  rabbitMqFactory =, new ConnectionFactory () ,{ HostName =,才能“127.0.0.1", UserName =,才能“guest", Password =,才能“guest", 时间=Port 才能;5672年,//VirtualHost 才能=,“JentVirtualHost" ,}; ,///& lt; summary> ,///路由名称 ,///& lt;/summary> ,const string ExchangeName =,“Jent.Exchange"; ,///& lt; summary> ,///队列名称 ,///& lt;/summary> ,const string QueueName =,“Jent.Queue"; ,static void Main (string [], args) ,{ DirectAcceptExchange才能(); Console.WriteLine才能(“输入任意值退出程序!“); Console.ReadKey才能(); ,} ,private static void  DirectAcceptExchange () ,{ using 才能;(IConnection conn =, rabbitMqFactory.CreateConnection ()) {才能 using 才能;(IModel channel =, conn.CreateModel ()) {才能 ,,channel.ExchangeDeclare (ExchangeName,“direct",,耐用,,真的,,autoDelete:,假,,参数:,null); ,,channel.QueueDeclare (QueueName,耐用:,真的,,独家:,假,,autoDelete:,假,,参数:,null); null null null null null null null null null null null null null null null null null怎么在。net中使用RabbitMQ发送即时消息