zoukankan      html  css  js  c++  java
  • RabbitMQ C# 例子 -摘自网络

      //刚刚接触,如有不对还望不吝指正
            public static void StartUp()
            {
                #region 前期准备工作
     
                ConnectionFactory factory = new ConnectionFactory();
                factory.Uri = "amqp://guest:guest@localhost:5672/";
                //架起物理链路
                IConnection conn = factory.CreateConnection();
                //创建通信信道
                IModel channel = conn.CreateModel();
     
                string exchangename = "我是负责转发信号的路由1";
                string queuename = "我是信号的接收器1";
                //架设信号路由
                channel.ExchangeDeclare(exchangename, ExchangeType.Direct);
                //架设信号接收器
                channel.QueueDeclare(queuename, false, false, false, null);
                //连通信号路由器和接收器
                channel.QueueBind(queuename, exchangename, "", null);
     
                #endregion
     
                byte[] messageBodyBytes = System.Text.Encoding.UTF8.GetBytes("Hello, world!");
                //channel.BasicPublish(exchangename,"",null,messageBodyBytes);
                IBasicProperties props = channel.CreateBasicProperties();
                props.ContentType = "text/plain";
                props.DeliveryMode = 2;
                channel.BasicPublish(exchangename,"",props,messageBodyBytes);
     
     
                ConnectionFactory service = new ConnectionFactory();
     
                using (conn = service.CreateConnection())
                {
                    using (IModel servicechannle = conn.CreateModel())
                    {
                        //ch.QueueDeclare(queuename, false, false, false, null);
                        //服务端接收消息队列
                        bool noAck = false;
                        BasicGetResult result = servicechannle.BasicGet(queuename, noAck);
                        if (result == null)
                        {
                            Console.WriteLine("没有消息");
                        }
                        else
                        {
                            servicechannle.BasicAck(result.DeliveryTag, false);
                            Console.WriteLine("接收消息成功:" + result.BasicProperties.ContentType);
                            Console.WriteLine("接收消息成功:" + result.BasicProperties.DeliveryMode);
                            Console.WriteLine("接收消息成功:" + System.Text.Encoding.Default.GetString(result.Body));
                        }
                    }
                }
     
     
                conn.AutoClose = true;
            }
    

      

  • 相关阅读:
    把Orchard部署到Windows Azure Web Sites
    使用Windows Live Writer 发布博客园博客
    使用Microsoft Word 2013 发布Blog到博客园
    Java栈的简单实现
    Java中的运算符
    Java简单双向链表实现 @version 1.0
    Java中的面向对象II
    认识和分析日志文件
    两数之和问题
    括号序列算法
  • 原文地址:https://www.cnblogs.com/haoliansheng/p/4401914.html
Copyright © 2011-2022 走看看