c#如何利用RabbitMQ实现点对点消息传输

  介绍

这篇文章主要介绍c#如何利用RabbitMQ实现点对点消息传输,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

消息队列模型

所有MQ产品从模型抽象上来说都是一样的过程:
消费者(消费者)订阅某个队列。生产者(生产者)创建消息,然后发布到队列(队列)中,最后将消息发送到监听的消费者。

 C #如何利用RabbitMQ实现点对点消息传输

RabbitMQ设置

RabbitMQ是通过交换机将消息转发到对应队列,所以队列需要和交换机进行绑定。本例将队列绑定到默认的amq。直接交换机,并设置路由的关键,如下图所示:

 C #如何利用RabbitMQ实现点对点消息传输

RabbitMQ动态库安装

通过NuGet包管理器进行安装RabbitMQ。客户端,如下所示:

 C #如何利用RabbitMQ实现点对点消息传输

RabbitMQ。客户相关知识点

<李>

ConnectionFactory:构造一个实例,主要创建连接。

<李>

IConnection:表示一个基于AMQP协议的连接。

<李>

IModel:表示一个RabbitMQ通道,可用于声明一个队列,然后开始消费。

<李>

EventingBasicConsumer:基于独立事件监听的基础消费者,可以监听并接收消息。

<李>

生产者基本步骤:1。创建连接2。基于连接创建通道3。基于通道声明队列,4。开始生产并发布消息

<李>

消费者基本步骤:1。创建连接2。基于连接创建通道3。基于通道声明队列,4。创建消费者,5。绑定通道和消费者,并开始消费

示例效果图

本例主要有一个生产者,一个消费者,通过消息队列进行消息转发和接收。

生产者负责消息发送,如下图所示:

 C #如何利用RabbitMQ实现点对点消息传输

消费者负责消息接收,如下图所示:

 C #如何利用RabbitMQ实现点对点消息传输

核心代码

代码结构:主要包括生产者,消费者,公共基础代码,如下所示:

 C #如何利用RabbitMQ实现点对点消息传输

RabbitMqHelper主要创建连接,如下所示:

public  class  RabbitMqHelper   ,,,{      ,,,,,,,///,& lt; summary>   ,,,,,,,///,创建连接   ,,,,,,,///,& lt;/summary>   ,,,,,,,///,& lt; returns> & lt;/returns>   ,,,,,,,public  IConnection  GetConnection ()   ,,,,,,,{   ,,,,,,,,,,,试一试   ,,,,,,,,,,,{   ,,,,,,,,,,,,,,,var  factory =, new  ConnectionFactory ()   ,,,,,,,,,,,,,,,{   ,,,,,,,,,,,,,,,,,,,HostName =,“127.0.0.1",   ,,,,,,,,,,,,,,,,,,,Port =, 5672年,   ,,,,,,,,,,,,,,,,,,,UserName =,“guest",   ,,,,,,,,,,,,,,,,,,,Password =,“guest",   ,,,,,,,,,,,,,,,,,,,VirtualHost =,“/ShortMsgHost"   ,,,,,,,,,,,,,,,};   ,,,,,,,,,,,,,,,var  conn =, factory.CreateConnection ();   ,,,,,,,,,,,,,,,return 康涅狄格州;   ,,,,,,,,,,,}   ,,,,,,,,,,,catch  (Exception 交货),{   ,,,,,,,,,,,,,,,throw 交货;   ,,,,,,,,,,,}   ,,,,,,,}            ,,,}

RabbmitMqSendHelper用于发送消息,如下所示:

public  class  RabbmitMqSendHelper : RabbitMqHelper   ,,,{   ,,,,,,,///,& lt; summary>   ,,,,,,,///,发送消息   ,,,,,,,///,& lt;/summary>   ,,,,,,,///,& lt; param  name=癿sg"祝辞& lt;/param>   ,,,,,,,///,& lt; returns> & lt;/returns>   ,,,,,,,public  bool  SendMsg (string 味精)   ,,,,,,,{   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

c#如何利用RabbitMQ实现点对点消息传输