rbb
🧩 Syntax:
using MassTransit;
using MassTransit.Serialization;
using RabbitSecurity;
namespace OdbiorcaB
{
internal class Program
{
public class WiadomoscConsumer : IConsumer<Wiadomości.IPubl>
{
public async Task Consume(ConsumeContext<Wiadomości.IPubl> context)
{
var wiadomosc = context.Message;
var id = wiadomosc.Id;
Console.WriteLine($"Odczytalem wiadomosc {wiadomosc.Id}");
if (id % 3 == 0)
{
Console.WriteLine("Wysylam odpowiedz");
var odp = new Wiadomości.Odp { Kto = "B" };
await context.RespondAsync<Wiadomości.IOdp>(odp);
}
}
}
static async Task Main(string[] args)
{
var consumer = new WiadomoscConsumer();
var bus = Bus.Factory.CreateUsingRabbitMq(sbc => {
sbc.Host("rattlesnake.rmq.cloudamqp.com", "rfrwranm",
h => {
var credentials = new RabbitSecurityCredentials();
h.Username(credentials.GetUser());
h.Password(credentials.GetPassword());
});
var dostawca = new Dostawca(KluczKomunikacji.Klucz);
sbc.UseEncryptedSerializer(new AesCryptoStreamProvider(dostawca, KluczKomunikacji.Klucz));
sbc.ReceiveEndpoint("message_queue_2", ep => {
ep.Instance(consumer);
});
});
Console.WriteLine("Jestem odbiorca B");
await bus.StartAsync();
Console.ReadKey();
await bus.StopAsync();
}
}
}