示例#1
0
        public ActionResult Index1()
        {
            string resmsg = "";

            try
            {
                ConnectionFactory factory = new ConnectionFactory();
                factory.HostName = "localhost";
                factory.UserName = "******";
                factory.Password = "******";
                using (IConnection conn = factory.CreateConnection())
                {
                    using (IModel channel = conn.CreateModel())
                    {
                        //在MQ上定义一个持久化队列,如果名称相同不会重复创建
                        channel.QueueDeclare("FirstQueue", false, false, false, null);

                        //输入1,那如果接收一个消息,但是没有应答,则客户端不会收到下一个消息
                        channel.BasicQos(0, 1, false);

                        //在队列上定义一个消费者
                        QueueingBasicConsumer consumer = new QueueingBasicConsumer(channel);
                        //消费队列,并设置应答模式为程序主动应答
                        channel.BasicConsume("FirstQueue", false, consumer);
                        int num = 2;
                        //阻塞函数,获取队列中的消息
                        BasicDeliverEventArgs ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
                        byte[]     bytes         = ea.Body;
                        string     str           = Encoding.UTF8.GetString(bytes);
                        RequestMsg msg           = JsonConvert.DeserializeObject <RequestMsg>(str);
                        resmsg = msg.Name + "+" + msg.Code;
                        //回复确认
                        channel.BasicAck(ea.DeliveryTag, false);
                    }
                }
            }
            catch (Exception e1)
            {
                Console.WriteLine(e1.ToString());
            }
            ViewBag.msg = resmsg;
            return(View());
        }
示例#2
0
        //
        // GET: /RabbitMQ/
        public ActionResult Index(string str)
        {
            string msg = "";

            try
            {
                ConnectionFactory factory = new ConnectionFactory();
                factory.HostName = "localhost";
                factory.UserName = "******";
                factory.Password = "******";
                using (IConnection conn = factory.CreateConnection())
                {
                    using (IModel channel = conn.CreateModel())
                    {
                        //在MQ上定义一个持久化队列,如果名称相同不会重复创建
                        channel.QueueDeclare("FirstQueue", false, false, false, null);
                        RequestMsg requestMsg = new RequestMsg();
                        byte[]     bytes      = Encoding.UTF8.GetBytes(str);

                        //设置消息持久化
                        IBasicProperties properties = channel.CreateBasicProperties();
                        properties.DeliveryMode = 1;
                        channel.BasicPublish("", "FirstQueue", properties, bytes);

                        //channel.BasicPublish("", "MyFirstQueue", null, bytes);

                        msg = "消息已发送";
                    }
                }
            }
            catch (Exception e1)
            {
                msg = e1.ToString();
            }
            ViewBag.msg = msg;
            return(View());
        }