在.Net中设置RabbitMQ的发布者和多个订阅者可以通过以下步骤完成:
using RabbitMQ.Client;
using System;
using System.Text;
class Program
{
static void Main()
{
var factory = new ConnectionFactory() { HostName = "localhost" };
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "my_queue",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
string message = "Hello RabbitMQ!";
var body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish(exchange: "",
routingKey: "my_queue",
basicProperties: null,
body: body);
Console.WriteLine("Message sent: {0}", message);
}
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
在上述代码中,我们创建了一个连接工厂(ConnectionFactory),指定了RabbitMQ服务器的主机名。然后,使用连接工厂创建一个连接(Connection),再使用连接创建一个通道(Channel)。接下来,我们声明了一个消息队列(Queue),并将消息发送到该队列中。
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System;
using System.Text;
class Program
{
static void Main()
{
var factory = new ConnectionFactory() { HostName = "localhost" };
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "my_queue",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body.ToArray();
var message = Encoding.UTF8.GetString(body);
Console.WriteLine("Message received: {0}", message);
};
channel.BasicConsume(queue: "my_queue",
autoAck: true,
consumer: consumer);
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
}
在上述代码中,我们创建了一个消费者(Consumer),并订阅了接收消息的事件(Received)。当有消息到达时,事件处理程序会将消息的内容打印到控制台。
需要注意的是,发布者和订阅者的代码可以在不同的项目中实现,只要它们都引用了相同的RabbitMQ客户端库即可。
以上是在.Net中设置RabbitMQ的发布者和多个订阅者的基本步骤。关于RabbitMQ的更多详细信息和用法,请参考腾讯云的消息队列产品 消息队列(TDMQ)。
领取专属 10元无门槛券
手把手带您无忧上云