-2
votes

J'ai besoin d'un exemple de la diffusion du même message à plusieurs récepteurs à l'aide de la bibliothèque EasyNetQ

J'essaie d'utiliser EasynetQ pour envoyer et recevoir des messages de Rabbitmq, J'ai besoin d'envoyer le même message à plusieurs récepteurs ou qui est toujours connecté à l'époque.

J'ai essayé de publier le modèle de messagerie de publication et cela fonctionne bien, mais cela ressemble plus à Round-Robin, où une fois le message reçu par un Récepteur Il est supprimé de la file d'attente et personne d'autre ne peut voir le message. P>

Voici mon expéditeur de message. P>

        using (IBus bus = RabbitHutch.CreateBus(Host))
        {
            bus.Subscribe<TextMessage>("dashboard", HandleTextMessage);

            Console.WriteLine("Listening for messages. Hit <return> to quit.");
            Console.ReadLine();
        }
    }

    static void HandleTextMessage(TextMessage textMessage)
    {
        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine("Got message: {0}", textMessage.Text);
        Console.ResetColor();
    }


0 commentaires

3 Réponses :


0
votes

Je crois que la question décrit le comportement d'un échange de fanout. Ils ne sont pas largement utilisés, mais il est clair que c'est ce que vous recherchez. Plus d'informations peuvent être trouvées ici: https://www.tutlane.com / Tutoriel / Rabbitmq / Csharp-rabbbitmq-fanout-Exchange


1 commentaires

Oui c'est ce que je cherche, mais je me demandais s'il y a la même capacité au client EASYNETQ?



0
votes

Je n'ai pas compris à quel point le rabbitmq fonctionne. Tout ce dont j'avais besoin était de créer un échange et d'avoir échangé envoyer les messages aux files d'attente. Si les files d'attente l'ont fait ça.


0 commentaires

1
votes

En réalité, EasyNeTQ vous abstrait de devoir faire face à des échanges dans la plupart des cas. Pour réaliser ce que vous demandez simplement spécifier un identifiant d'abonnement différent lors de l'abonnement, pour Instace A GUIB:

public void GetMessages() 
{

    using (IBus bus = RabbitHutch.CreateBus(Host))
    {
        bus.Subscribe<TextMessage>(Guid.NewGuid().ToString(), HandleTextMessage);

        Console.WriteLine("Listening for messages. Hit <return> to quit.");
        Console.ReadLine();
    }
}

static void HandleTextMessage(TextMessage textMessage)
{
    Console.ForegroundColor = ConsoleColor.Red;
    Console.WriteLine("Got message: {0}", textMessage.Text);
    Console.ResetColor();
}


0 commentaires