以下是一个使用C#编写的简单的消息队列发送和接收程序的示例:

using System;
using System.Threading.Tasks;
using RabbitMQ.Client;
using RabbitMQ.Client.Events;

class Program
{
    static void Main()
    {
        Task.Run(() => ReceiveMessage()); // 启动接收消息的任务
        SendMessage(); // 发送消息
    }

    static void SendMessage()
    {
        var factory = new ConnectionFactory() { HostName = "localhost" };
        using (var connection = factory.CreateConnection())
        using (var channel = connection.CreateModel())
        {
            channel.QueueDeclare(queue: "message_queue",
                                 durable: false,
                                 exclusive: false,
                                 autoDelete: false,
                                 arguments: null);

            string message = "Hello, RabbitMQ!";
            var body = System.Text.Encoding.UTF8.GetBytes(message);

            channel.BasicPublish(exchange: "",
                                 routingKey: "message_queue",
                                 basicProperties: null,
                                 body: body);

            Console.WriteLine("Sent message: {0}", message);
        }
    }

    static void ReceiveMessage()
    {
        var factory = new ConnectionFactory() { HostName = "localhost" };
        using (var connection = factory.CreateConnection())
        using (var channel = connection.CreateModel())
        {
            channel.QueueDeclare(queue: "message_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 = System.Text.Encoding.UTF8.GetString(body);
                Console.WriteLine("Received message: {0}", message);
            };

            channel.BasicConsume(queue: "message_queue",
                                 autoAck: true,
                                 consumer: consumer);

            Console.WriteLine("Press [enter] to exit.");
            Console.ReadLine();
        }
    }
}

上述代码使用RabbitMQ来实现消息队列的发送和接收。在 SendMessage 方法中,我们创建了一个连接、一个通道,并声明了一个名为 message_queue 的队列。然后,我们将消息发送到该队列中。

ReceiveMessage 方法中,我们同样创建了一个连接、一个通道,并声明了与发送端相同的队列。然后,我们使用 EventingBasicConsumer 类来订阅队列中的消息,并在接收到消息时进行处理。

你可以根据自己的需求进行修改和扩展

请帮我用C#写一个消息队列发送和接收的程序

原文地址: https://www.cveoy.top/t/topic/ijMo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录