网使用RabbitMQ即时发消息演示
前言
最近项目要使用RabbitMQ,网上已经有很多优秀的文章了,百度百科对RabbitMQ阐述也非常明确,建议去看下,还有消息队列协议协议。必须一提的是消息中间件是由lsshift提供的一个消息队列协议(AMQP)的开源实现,由以高性能、健壮以及可伸缩性出名的占线小时写成(因此也是继承了这些优点)。
最近参考大神们的博客,自己做了一个RabbitMQ即时发消息的演示。下面话不多说了,来一起看看详细的介绍吧。
步骤如下:
1.使用对的框架安装包管理工具安装RabbitMQ .客户端:
2.生产者端代码:
使用系统;使用系统。集合。通用;使用系统Linq .使用系统。文字;使用系统。线程化。任务;使用RabbitMQ .客户;命名空间RabbitMQ .producter { class Program } {///summary///连接配置////摘要私有静态只读ConnectionFactory rabbtmqfactory=new ConnectionFactory(){ HostName=' localhost ',UserName='guest ',Password='guest ',Port=5672,//虚拟主机=' JentVirtualHost ' };///摘要///路由名称////summary const string ExchangeName=' Jent .“交易所”;///摘要///队列名称////summary const string QueueName=' Jent .队列;静态void Main(字符串[]args){ directexchangesendemsg();控制台WriteLine(“”按任意键退出程序!');控制台ReadKey();} ///摘要///单点精确路由模式////摘要私有静态void directexchangesendemsg(){ 0使用(IConnection conn=rabbitMqFactory .create connection()){ 0使用(IModel channel=conn . create model()){ channel .ExchangeDeclare(ExchangeName,' direct ',durable: true,autoDelete: false,参数3360 null);频道QueueDeclare(QueueName,durable: true,exclusive: false,autoDelete: false,参数3360 null);频道QueueBind(QueueName,ExchangeName,RoutingKey : QueueName);定义变量道具=频道CreateBasicProperties();道具。持久=真;控制台WriteLine(“”请输入需要发送的消息:');字符串vadata=控制台.ReadLine();while (vadata!='exit') { var msgBody=Encoding .UTF8。GetBytes(vadata);频道base cppublish(exchange :交换名,routingKey: QueueName,basicProperties:道具,body : msgBody);控制台WriteLine(字符串。格式('发送时间:{0},发送完毕,输入出口退出消息发送,DateTime .现在。ToString(' yyyy-MM-DD hh :MM 3360s ');vadata=控制台ReadLine();} } } } }}3.消费者端代码:
使用系统;使用系统。集合。通用;使用系统Linq .使用系统。文字;使用系统。线程化。任务;使用RabbitMQ .客户;命名空间RabbitMQ .消费者{课程计划}连接配置////summary private static readonly ConnectionFactory rabbtmqfactory=new ConnectionFactory(){ HostName=' 127。0 .0 .1 ',UserName='guest ',Password='guest ',Port=5672,//虚拟主机=' jentvirtuallhost ' };///摘要///路由名称////summary const string ExchangeName=' Jent .“交易所”;///摘要///队列名称////summary const string QueueName=' Jent .队列;静态void Main(字符串[]个参数){ DirectAcceptExchange();控制台WriteLine(“”输入任意值退出程序!');控制台ReadKey();}私有静态void direct accept exchange(){ 0使用(IConnection conn=rabbitMqFactory .create connection()){ 0使用(IModel channel=conn . create model()){ channel .ExchangeDeclare(ExchangeName,' direct ',durable: true,autoDelete: false,参数3360 null);频道QueueDeclare(QueueName,durable: true,exclusive: false,autoDelete: false,参数3360 null);频道QueueBind(QueueName,ExchangeName,RoutingKey : QueueName);while(true){ BasicGetResult msgreresponse=channel .base cget(QueueName,auto ack : false);if(msgreresponse!=null) { var msgBody=编码.UTF8。GetString(msgreresponse .身体);控制台WriteLine(字符串。格式('接收时间:{0},消息内容:{1} ',日期时间现在。ToString(' yyyy-MM-DD hh :MM :s '),MSgbody);}//系统。线程。线程。睡眠(时间跨度从秒(1)开始。} } } } }}4.程序结果:
注:在第一步之前,你需要安装RabbitMQ客户端,可从http://www.rabbitmq.com/download.html下载,
但是RabbitMQ又是依赖于二郎动态口令平台,所以,安装RabbitMQ之前,需要先从http://www.erlang.org/download.html下载安装占线小时
关于这部分的内容,推荐阅读:https://www .JB 51。net/article/143499。html文件的后缀
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
版权声明:网使用RabbitMQ即时发消息演示是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。