publish发布消息

新建一个Asp.Net Core控制台项目:PublishDemo

安装Nuget包

Install-Package RabbitMQ.Client

添加命名空间引用

using RabbitMQ.Client;
using RabbitMQ.Client.Events;

先定义好用来发消息的交换机、队列、RoutingKey、消息等变量。

String exchangeName = "wytExchange";
String routeKey = "wytRouteKey";
String message = "Hello World!";

完整代码

using System;
using System.Text;
using RabbitMQ.Client;
using RabbitMQ.Client.Events; namespace PublishDemo
{
class Program
{
static void Main(string[] args)
{
String exchangeName = "wytExchange";
String routeKey = "wytRouteKey";
String message = "Hello World!"; ConnectionFactory factory = new ConnectionFactory();
factory.HostName = "192.168.63.129";
factory.Port = ;
factory.VirtualHost = "/wyt";
factory.UserName = "wyt";
factory.Password = "wyt"; using (IConnection connection=factory.CreateConnection())
{
using (IModel channel=connection.CreateModel())
{
//声明交换机(名称:log,类型:fanout(扇出))
channel.ExchangeDeclare(exchange: exchangeName, type: "direct",durable:false,autoDelete:false,arguments:null); Byte[] body = Encoding.UTF8.GetBytes(message); //消息推送
channel.BasicPublish(exchange: exchangeName, routingKey: routeKey, body: body); Console.WriteLine(" [x] Sent {0}", message);
}
} Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}
}
}

查看交换机多了一个wytExchange交换机。

Subscribe发布消息

新建一个Asp.Net Core控制台项目:SubscribeDemo

安装Nuget包

Install-Package RabbitMQ.Client

添加命名空间引用

using RabbitMQ.Client;
using RabbitMQ.Client.Events;

先定义好用来发消息的交换机、队列、RoutingKey、消息等变量。

String queueName = "wytQueue";
String exchangeName = "wytExchange";
String routeKeyName = "wytRouteKey";

完整代码

using System;
using System.Text;
using RabbitMQ.Client;
using RabbitMQ.Client.Events; namespace SubscribeDemo
{
class Program
{
static void Main(string[] args)
{
String queueName = "wytQueue";
String exchangeName = "wytExchange";
String routeKeyName = "wytRouteKey"; ConnectionFactory factory = new ConnectionFactory();
factory.HostName = "localhost";
factory.Port = ;
factory.VirtualHost = "/wyt";
factory.UserName = "wyt";
factory.Password = "wyt"; using (IConnection connection=factory.CreateConnection())
{
using (IModel channel=connection.CreateModel())
{
//声明交换机
channel.ExchangeDeclare(exchange: exchangeName, type: "direct",durable:true,autoDelete:false,arguments:null); //声明队列
channel.QueueDeclare(queue: queueName, durable: true, exclusive: false, autoDelete: false, arguments: null); //将队列和交换机绑定
channel.QueueBind(queue: queueName, exchange: exchangeName, routingKey: routeKeyName, arguments: null); //定义接收消息的消费者逻辑
EventingBasicConsumer consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
Byte[] body = ea.Body;
String message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] {0}", message);
}; //将消费者和队列绑定
channel.BasicConsume(queue: queueName, autoAck: true, consumer: consumer); Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine(); }
}
}
}
}

查看交换机已经有superrd队列。

消息收发

RabbitMQ消息队列(五)-安装amqp扩展并订阅/发布Demo(.Net Core版)的更多相关文章

  1. (五)RabbitMQ消息队列-安装amqp扩展并订阅/发布Demo(PHP版)

    原文:(五)RabbitMQ消息队列-安装amqp扩展并订阅/发布Demo(PHP版) 本文将介绍在PHP中如何使用RabbitMQ来实现消息的订阅和发布.我使用的系统依然是Centos7,为了方便, ...

  2. RabbitMQ消息队列入门(一)——RabbitMQ消息队列的安装(Windows环境下)

    一.RabbitMQ介绍1.RabbitMQ简介RabbitMQ是一个消息代理:它接受和转发消息.你可以把它想象成一个邮局:当你把你想要发布的邮件放在邮箱中时,你可以确定邮差先生最终将邮件发送给你的收 ...

  3. openresty 学习笔记番外篇:python访问RabbitMQ消息队列

    openresty 学习笔记番外篇:python访问RabbitMQ消息队列 python使用pika扩展库操作RabbitMQ的流程梳理. 客户端连接到消息队列服务器,打开一个channel. 客户 ...

  4. PHP 下基于 php-amqp 扩展的 RabbitMQ 简单用例 (一) -- 安装 AMQP 扩展和 Direct Exchange 模式

    Windows 安装 amqp 扩展 RabbitMQ 是基于 amqp(高级消息队列协议) 协议的.使用 RabbitMQ 前必须为 PHP 安装相应的 amqp 扩展. 下载相应版本的 amqp ...

  5. (三)RabbitMQ消息队列-Centos7下安装RabbitMQ3.6.1

    原文:(三)RabbitMQ消息队列-Centos7下安装RabbitMQ3.6.1 如果你看过前两章对RabbitMQ已经有了一定了解,现在已经摩拳擦掌,来吧动手吧! 用什么系统 本文使用的是Cen ...

  6. openresty 学习笔记五:访问RabbitMQ消息队列

    openresty 学习笔记五:访问RabbitMQ消息队列 之前通过比较选择,决定采用RabbitMQ这种消息队列来做中间件,目的舒缓是为了让整个架构的瓶颈环节.这里是做具体实施,用lua访问Rab ...

  7. RabbitMQ消息队列系列教程(二)Windows下安装和部署RabbitMQ

    摘要 本篇经验将和大家介绍Windows下安装和部署RabbitMQ消息队列服务器,希望对大家的工作和学习有所帮助! 目录 一.Erlang语言环境的搭建 二.RabbitMQ服务环境的搭建 三.Ra ...

  8. RabbitMQ 消息队列 安装及使用

    RabbitMQ 消息队列安装: linux版本:CentOS 7 安装第一步:先关闭防火墙 1.Centos7.x关闭防火墙 [root@rabbitmq /]# systemctl stop fi ...

  9. RabbitMQ消息队列应用

    RabbitMQ消息队列应用 消息通信组件Net分布式系统的核心中间件之一,应用与系统高并发,各个组件之间解耦的依赖的场景.本框架采用消息队列中间件主要应用于两方面:一是解决部分高并发的业务处理:二是 ...

随机推荐

  1. Java中的异步通知

    在我们的日常开发中,经常会遇到这样的问题--"我让你做一件事情,但是你做得很慢,并不能够立马返回给我结果,害我一直在那儿等着你给我返回结果,什么都做不了". 程序是自上而下顺序执行 ...

  2. python 多线程 及多线程通信,互斥锁,线程池

    1.简单的多线程例子 import threading,timedef b_fun(i): print "____________b_fun start" time.sleep(7 ...

  3. 使用bootstrap本机调试时,应该使用本地服务器地址访问,如http://192.168.19.112/rjshop/,否则360浏览器会出现不兼容的情况

    使用bootstrap本机调试时,应该使用本地服务器地址访问,如http://192.168.19.112/rjshop/,否则360浏览器会出现不兼容的情况

  4. vs2012,打开早期版本窗体错误

    <runtime>  <NetFx40_LegacySecurityPolicy enabled="true"/></runtime>

  5. git 配置 .ssh key

    1.安装git软件: 2.打开本地git bash,使用如下命令生成ssh公钥和私钥对: ssh-keygen -t rsa -C 'xxx@xxx.com'    然后一路回车(-C 参数是你的邮箱 ...

  6. 201771010126 王燕《面向对象程序设计(Java)》第十三周学习总结

    实验十三  图形界面事件处理技术 实验时间 2018-11-22 1.实验目的与要求 (1) 掌握事件处理的基本原理,理解其用途: 事件源 (eventevent eventeventsource s ...

  7. java课程之团队开发冲刺阶段1.6

    一.总结昨天进度 1.依照视频学习了sqlite,但是由于视频的不完整性导致并不知道代码的实际效果怎么样. 二.遇到的问题 1.依据上一条,在date目录下date文件夹中,的确发现了数据库的文件,但 ...

  8. 如何在mysql客户端即mysql提示符下执行操作系统命令

    环境描述: mysql版本:5.5.57-log 操作系统版本:Red Hat Enterprise Linux Server release 6.6 (Santiago) 需求描述: 在mysql的 ...

  9. csv 数据

    csv数据:逗号分隔值,其文件以纯文本的形式存储表格数据(数据和文本).csv模块是python的内置模块,需要引用后再使用 csv.reader(csv_file) #使用with结构 with o ...

  10. Python学习宝典,Python400集让你成为从零基础到手写神经网络的Python大神

    当您学完Python,你学到了什么? 开发网站! 或者, 基础语法要点.函数.面向对象编程.调试.IO编程.进程与线程.正则表达式... 当你学完Python,你可以干什么? 当程序员! 或者, 手写 ...