如果你想在 .net core 中发布/订阅
首先你需要安装 lib RabbitMQ.Client
安装 NuGet 包 RabbitMQ.Client
那么你可以在 .net core 相同的控制台应用程序中使用 RabbitMQ。
您可以查看 .net core 2.2 here 的示例。
发布
public bool Publish()
{
var RoutingKey = "QueueName";
var Body = "Message";
var Factory = new ConnectionFactory
{
UserName = "guest",
Password = "guest",
Port = 5672,
HostName = "localhost",
VirtualHost = "/"
};
using (var connection = Factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.ExchangeDeclare("messageexchange", ExchangeType.Direct);
channel.QueueDeclare(RoutingKey, true, false, false, null);
channel.QueueBind(RoutingKey, "messageexchange", RoutingKey, null);
channel.BasicPublish("messageexchange", RoutingKey, null, Encoding.UTF8.GetBytes(Body));
}
return true;
}
订阅
public SubscribeResult Subscribe()
{
var Queue = "QueueName";
var Factory = new ConnectionFactory
{
UserName = "guest",
Password = "guest",
Port = 5672,
HostName = "localhost",
VirtualHost = "/"
};
var subscribeResult = new SubscribeResult(); ;
using (var connection = Factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: Queue, durable: true, exclusive: false, autoDelete: false, arguments: null);
var result = channel.BasicGet(queue: Queue, autoAck: true);
if (result != null)
{
subscribeResult.Body = Encoding.UTF8.GetString(result.Body);
}
}
return subscribeResult;
}