https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.htmlhtml
新建控制檯項目 Sender,Receivergit
添加 nuget 包:RabbitMQ.Clientgithub
namespace Sender { class Sender { public static void Main() { var factory = new ConnectionFactory() { HostName = "localhost" }; using (var connection = factory.CreateConnection()) { using (var channel = connection.CreateModel()) { channel.QueueDeclare(queue: "hello", durable: false, // 持久化 exclusive: false, // 排它 autoDelete: false, // 自動刪除 arguments: null); string message = "Hello World!"; var body = Encoding.UTF8.GetBytes(message); channel.BasicPublish(exchange: "", routingKey: "hello", basicProperties: null, body: body); Console.WriteLine(" [x] Sent {0}", message); } Console.WriteLine(" Press [enter] to exit."); Console.ReadLine(); } } } }
namespace Receiver { class Receiver { public static void Main() { var factory = new ConnectionFactory() { HostName = "localhost" }; using (var connection = factory.CreateConnection()) using (var channel = connection.CreateModel()) { channel.QueueDeclare(queue: "hello", 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(" [x] Received {0}", message); }; channel.BasicConsume(queue: "hello", autoAck: true, consumer: consumer); Console.WriteLine(" Press [enter] to exit."); Console.ReadLine(); } } } }
docker run -d -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
運行成功後能夠訪問(localhost 替換爲服務器地址)docker
http://localhost:15672/#/
用戶名密碼默認爲 guest服務器
替換髮送端,接收端的 localhost 爲服務器地址spa
先啓動接收端,再啓動發送端code
發送多條信息htm
Senderblog
channel.QueueDeclare(queue: "hello", durable: false, // 持久化 exclusive: false, // 排它 autoDelete: false, // 自動刪除 arguments: null); Console.WriteLine("Please input your message with enter:"); string message = Console.ReadLine(); while (message != "EXIT") { var body = Encoding.UTF8.GetBytes(message); channel.BasicPublish(exchange: "", routingKey: "hello", basicProperties: null, body: body); Console.WriteLine(" [x] Sent {0}", message); Console.WriteLine("Please input your message with enter:"); message = Console.ReadLine(); }
先啓動接收端,再啓動發送端rabbitmq
https://github.com/MINGSON666/Personal-Learning-Library/tree/main/ArchitectTrainingCamp
本做品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。
歡迎轉載、使用、從新發布,但務必保留文章署名 鄭子銘 (包含連接: http://www.cnblogs.com/MingsonZheng/ ),不得用於商業目的,基於本文修改後的做品務必以相同的許可發佈。
若有任何疑問,請與我聯繫 (MingsonZheng@outlook.com) 。