Plain Rabbitmq is a plain and simple wrapper around RabbitMQ.Client encapsulating the boilerplate code.
Use the Nuget package manager Nuget to install Plain.RabbitMQ
Install-Package Plain.RabbitMQ -Version 0.0.0.4
DI Registration
services.AddSingleton<IConnectionProvider>(new ConnectionProvider("Queue Url"));
services.AddSingleton<ISubscriber>(x => new Subscriber(x.GetService<IConnectionProvider>(),
"exchange name",
"queue name",
"routing key",
ExchangeType.Topic));
services.AddScoped<IPublisher>(x => new Publisher(x.GetService<IConnectionProvider>(),
"exchange name",
ExchangeType.Topic));
Publisher
publisher.Publish(JsonConvert.SerializeObject(object), "routing key", headers);
Subscriber
subscriber.Subscribe((message, header) => {
Console.WriteLine(message);
return true;
});
Async Subscriber
subscriber.SubscribeAsync(async (message, header) => {
Console.WriteLine(message);
return await Task.FromResult(true);
});
Example video available in YouTube here: https://youtu.be/rUKqaO8IQCE
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.