//测试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(); }
/// <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); }
//测试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)); } }