怎么在。net中使用RabbitMQ发送即时消息

  介绍

怎么在。net中使用RabbitMQ发送即时消息?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>步骤如下:,

1。使用VS的NuGet安装包管理工具安装RabbitMQ。客户:

怎么在。net中使用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发送即时消息