• Rabbitmq简单队列


    namespace ZMQMessage
    {
        public class RabbitMQTask
        {
            private static string QUEUE_NAME = "q_test_01";
            /// <summary>
            /// 发送信息
            /// </summary>
            /// <param name="QUEUE_NAME"></param>
            public void run(string QUEUE_NAME)
            {
                var factory = new ConnectionFactory();//创建连接工厂并初始连接
                factory.HostName = "40.88.34.64";
                factory.Port = 5672;
                factory.VirtualHost = "OrderSendHost";
                factory.UserName = "admin";
                factory.Password = "admin";
    
                using (var connection = factory.CreateConnection())//创建一个连接
                {
                    using (var channel = connection.CreateModel()) //创建一个通道
                    {
                        channel.QueueDeclare(QUEUE_NAME, false, false, false, null);//创建一个队列
    
                        string message = "";
                        while (message != "exit")
                        {
                            Console.Write("Please enter the message to be sent:");
                            message = Console.ReadLine();
                            var body = Encoding.UTF8.GetBytes(message);
                            channel.BasicPublish("", QUEUE_NAME, null, body); //发送消息
                            Console.WriteLine("set message: {0}", message);
                        }
                    }
                }
    
    
                //xiaofei();
            }
            /// <summary>
            /// 消费
            /// </summary>
            public void xiaofei()
            {
                var factory = new ConnectionFactory();//创建连接工厂并初始连接
                factory.HostName = "40.88.34.64";
                factory.Port = 5672;
                factory.VirtualHost = "OrderSendHost";
                factory.UserName = "admin";
                factory.Password = "admin";
    
                using (var connection = factory.CreateConnection())//创建一个连接
                {
                    using (var channel = connection.CreateModel())//创建一个通道
                    {
                        channel.QueueDeclare(QUEUE_NAME, false, false, false, null);//创建一个队列
    
                        var consumer = new QueueingBasicConsumer(channel);//创建一个消费者
                        channel.BasicConsume(QUEUE_NAME, true, consumer);//开启消息者与通道、队列关联
    
                        Console.WriteLine(" waiting for message.");
                        while (true)
                        {
                            var ea = consumer.Queue.Dequeue();//接收消息并出列
    
                            var body = ea.Body;//消息主体
                            var message = Encoding.UTF8.GetString(body);
                            Console.WriteLine("Received {0}", message);
                            if (message == "exit")
                            {
                                Console.WriteLine("exit!");
                                break;
                            }
    
                        }
                    }
                }
    
            }
        }
    }
    

      前提RabbitMQ服务器要搭建好,端口要开放,在Nuget管理里添加RabbitMQ.Client

  • 相关阅读:
    C#网络编程.套接字.TcpListener.TcpClient
    GUI原型设计工具
    C#网络编程.2.套接字.TcpListener.TcpClient.服务端客户端通信
    网站开发策略选择
    jsdefinitionguide0221
    jquery0224
    sql trigger
    实现类似51job的选择框
    完美曲线
    MonoDroid
  • 原文地址:https://www.cnblogs.com/yinzhou/p/11091521.html
Copyright © 2020-2023  润新知