Example #1
0
        //测试RabbitMQ的消费者
        static void RabbitMQTest()
        {
            LogLocation.Log = new LogInfo();
            RabbitMQClientContext context = new RabbitMQClientContext()
            {
                ListenQueueName = "HELLOQUEUES",
                MqConfigDom     = new MqConfigDom()
                {
                    MqHost        = "127.0.0.1",
                    MqUserName    = "******",
                    MqPassword    = "******",
                    MqVirtualHost = "/"
                }
            };

            RabbitMQConsumer <MessageEntity> consumer = new RabbitMQConsumer <MessageEntity>(context, new EventMessage <MessageEntity>())
            {
                ActionMessage = b =>
                {
                    Console.WriteLine(JsonConvert.SerializeObject(b.MessageEntity));
                    b.IsOperationOk = true;
                }
            };

            consumer.OnListening();
            //多个消费者,共用一个连接,使用不同的Channel
            //consumer.OnListening();
        }
Example #2
0
        /// <summary>
        /// 初始化配置环境
        /// </summary>
        public void InitRabbit()
        {
            context                  = new RabbitMQClientContext();
            hostName                 = this.txtHostName.Text.Trim();
            userName                 = this.txtUsername.Text.Trim();
            passWord                 = this.txtPwd.Text.Trim();
            hostUrl                  = this.txtHostUrl.Text.Trim();
            exchangesApi             = hostUrl + "/api/exchanges";
            queuesApi                = hostUrl + "/api/queues";
            bingdingsApi             = hostUrl + "/api/bindings";
            context.SendConnection   = RabbitMQClientFactory.CreateConnection(hostName, 5672, userName, passWord);
            context.SendChannel      = RabbitMQClientFactory.CreateChannel(context.SendConnection);
            context.ListerConnection = RabbitMQClientFactory.CreateConnection(hostName, 5672, userName, passWord);
            context.ListerChannel    = RabbitMQClientFactory.CreateChannel(context.ListerConnection);

            cbExchangeType.SelectedIndex       = 0; //交换机类型
            cbExchangeDurable.SelectedIndex    = 0; //交换机持久化
            cbExchangeAutoDelete.SelectedIndex = 1; //交换机自动销毁
            cbQueueDurable.SelectedIndex       = 0; //队列持久化
            cbQueueExclusive.SelectedIndex     = 1; //队列排他性(只有自己可见的队列,即不允许其它用户访问)
            cbAutoDelete.SelectedIndex         = 1; ////队列自动销毁

            ShowExchangesToList(exchangesApi);
            ShowQueuesToList(queuesApi);
            ShowBindingsToList(bingdingsApi);
        }
Example #3
0
        //测试RabbitMQ
        static void RabbitMQTest(string content)
        {
            //持久化的Exchange、持久化的消息、持久化的队列
            //RabbitMQClientContext context = new RabbitMQClientContext() { SendQueueName = "SendQueueName11", SendExchange = "TEST" ,RoutType = MQRouteType.DirectExchange};
            //持久化的Exchange、持久化的消息、非持久化的队列
            RabbitMQClientContext context2 = new RabbitMQClientContext()
            {
                SendQueueName = "DirectQueue",
                SendExchange  = "DirectQueue",
                RoutType      = MqRouteType.DirectExchange,
                RoutKey       = "DirectQueue",
                MqConfigDom   = new MqConfigDom()
                {
                    MqHost        = "127.0.0.1",
                    MqUserName    = "******",
                    MqPassword    = "******",
                    MqVirtualHost = "/"
                }
            };

            IEventMessage <MessageEntity> message = new EventMessage <MessageEntity>()
            {
                IsOperationOk = false,
                MessageEntity = new MessageEntity()
                {
                    MessageContent = JsonConvert.SerializeObject(content)
                },
                deliveryMode = 2
            };

            try
            {
                RabbitMQSender <MessageEntity> sender = new RabbitMQSender <MessageEntity>(context2, message);
                //for (int i = 0; i < 10000; i++)
                //{
                Console.WriteLine(string.Format("发送信息:{0}", message.MessageEntity.MessageContent));
                sender.TriggerEventMessage();
                //}
            }
            catch (Exception e)
            {
                Console.WriteLine(string.Format("发送信息失败:{0}", e.Message));
            }
        }