У меня два абсолютно одинаковых потребителя
Потребитель 1
using (var adapter = new BuiltinHandlerActivator())
{
adapter.Handle<string>(async (bus, message) =>
{
Console.WriteLine("Got message > " + message);
await bus.Reply("Received in consumer 1");
});
Configure.With(adapter)
.Transport(t => t.UseAzureServiceBus(connectionString, "server"))
.Start();
adapter.Bus.Subscribe<string>().Wait();
Console.WriteLine("Press ENTER to quit");
Console.ReadLine();
}
Потребитель 2
using (var adapter = new BuiltinHandlerActivator())
{
adapter.Handle<string>(async (bus, message) =>
{
Console.WriteLine("Got message > " + message);
await bus.Reply("Received in Consumer 2");
});
Configure.With(adapter)
.Transport(t => t.UseAzureServiceBus(connectionString, "server"))
.Start();
adapter.Bus.Subscribe<string>().Wait();
Console.WriteLine("Press ENTER to quit");
Console.ReadLine();
}
Производитель
using (var adapter = new BuiltinHandlerActivator())
{
adapter.Handle<string>(async message =>
{
Console.WriteLine("Returned > " + message);
});
var bus = Configure
.With(adapter)
.Transport(t => t.UseAzureServiceBus(connectionString, "client"))
.Routing(r => r.TypeBased().Map<string>("server"))
.Start();
Console.WriteLine("Press Q to quit or any other key to produce a job");
while (true)
{
Console.Write("Write something > ");
var text = Console.ReadLine();
if (string.IsNullOrWhiteSpace(text)) break;
bus.Publish(text).Wait();
}
}
Что я ожидаю каждый раз, когда я отправляю сообщение от источника, оба моих потребителя отображают сообщение. Теперь он делает это только в одном из них. Когда я закрываю это и отправляю другое сообщение, остальное получает его.