博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RabbitMQ学习系列三:.net 环境下 C#代码订阅 RabbitMQ 消息并处理
阅读量:5267 次
发布时间:2019-06-14

本文共 795 字,大约阅读时间需要 2 分钟。

上一篇已经讲了Rabbitmq如何在Windows平台安装

不懂请移步: 

一、理论

.net环境下,C#代码订阅RabbitMQ消息队列,本文用easynetq开源的.net Rabbitmq api来实现,EasyNetQ 是一个易于使用的RabbitMQ的.Net客户端API,本文win服务基于topshelf实现,不懂请移步:

二、项目搭建

1、此处省略topshelf服务搭建步骤

2、服务项目结构

3、结构简要说明

NoticeProcess.cs 获取消息体后处理类

 

BusBuilder.cs 消息服务器连接器

Installer.cs 消息服务安装实现类

ServiceMain.cs 消息服务执行类

VaultService.cs C#订阅消息服务后的处理类,进行routingkey的约束等

 

Program.cs 程序启动类

 

三、测试发布和订阅

1、发布消息(此处省略,具体实现参照第二篇文章)

2、C#订阅服务启动测试

 

3、C#服务调试获取消息

 

可以看到这里启动后,获取到了1步骤当中的消息routingkey

4、c#处理代码

 

如果队列有其他的pcm.notice.xxxxx消息,同样会被c#服务获取到,都是基于pcm.notice.#这样的#完全匹配原则。

这样基本简单的c#订阅Rabbitmq消息,获取信息就完成了。
问题整理:

如果C#读取的Rabbitmq中message消息实体和你c#程序中的不一样,会报错如下:

EasyNetQ.EasyNetQInvalidMessageTypeExcepion:Message type is incorrect.Expected 'RabbitMQ_Message:RabbitMQ',but was ''

 

转载于:https://www.cnblogs.com/zxtceq/p/7891458.html

你可能感兴趣的文章
需求分析
查看>>
JAVA反射使用手记
查看>>
GitHub 多人协作开发 三种方式:
查看>>
python3 调用 beautifulSoup 进行简单的网页处理
查看>>
java Dialog
查看>>
strxfrm - 转换字符串
查看>>
文本域添加编辑器
查看>>
Yum安装MySQL以及相关目录路径和修改目录
查看>>
java获取hostIp和hostName
查看>>
RxJava结合Retrofit和Volley简单比较
查看>>
iOS 企业版 安装失败 原因
查看>>
ThreadLocal 理解
查看>>
关于web服务器和数据库的各种说法(搜集到的)
查看>>
一个 forceLayout() 和 requestLayout() 的测试
查看>>
【转】使用js触发事件
查看>>
Linux系统(Centos)下安装nodejs并配置环境
查看>>
《TCP/IP 详解 卷一》读书笔记 -----第四章 ARP
查看>>
python-5:字典类型操作:增删查改
查看>>
CentOS6.4(linux)下编写C程序(hello world)步骤及注意事项
查看>>
C# Stream 和 byte[] 之间的转换
查看>>