c# 4.0 .net连接rabbit mq
需要的包

命令:
NuGet\Install-Package RabbitMQ.Client -version 3.4.3
1、
/// <summary>
/// 得到mq连接
/// </summary>
/// <returns></returns>
public ConnectionFactory GetConnetion()
{
connection = new ConnectionFactory();
connection.UserName = RabbitMQConnection.UserName;
connection.Password = RabbitMQConnection.Password;
connection.Port = RabbitMQConnection.Port;
connection.VirtualHost = RabbitMQConnection.VirtualHost;
connection.HostName = RabbitMQConnection.HostName;
return connection;
}
2、
/// <summary>
/// 主题
/// </summary>
private void TopicBinding()
{
string queueName = "testqueue";
string exchangeName = "testTopicexchange";
string routingkey = "test.Topic.*";
ConnectionFactory factory = new InitRabbiMQ().GetConnetion();
IConnection connection = factory.CreateConnection();
IModel channel = connection.CreateModel();
//有key
channel.ExchangeDeclare(exchangeName, ExchangeType.Topic);
channel.QueueDeclare(queueName, true, false, false, null);
channel.QueueBind(queueName, exchangeName, routingkey);
channel.BasicQos(0, 1, false);
EventingBasicConsumer consumers = new EventingBasicConsumer(channel);
consumers.Received += (model, ea) =>
{
byte[] body = ea.Body.ToArray();
if (body != null
&& body.Length > 0)
{
new RabbitTriggerEvent().OnMessage(TestOnMessage, Encoding.UTF8.GetString(body) + ea.RoutingKey);
}
channel.BasicAck(ea.DeliveryTag, false);
};
channel.BasicConsume(queueName, false, consumers);
LogManage.Info("测试观察者绑定已绑定队列");
}
3、仅此而已
更多推荐

所有评论(0)