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();
        }
    }
}