Je me demandais s'il y a un moyen de déclencher des événements sur un nouvel abonnement à une prise éditeurZeroMQ socket éditeur - événement lever sur abonnement
Par exemple:
PublisherSocket publisher = new PublisherSocket();
publisher.Bind("tcp://*:5555");
NetMQPoller poller = new NetMQPoller { publisher };
poller.RunAsync();
poller.OnSubscription += topic =>
{
AddToPool(topic);
};
Task.Factory.StartNew(() =>
{
SubscriberSocket sub = new SubscriberSocket();
sub.Connect("tcp://127.0.0.1:5555");
Thread.Sleep(1000);
sub.Subscribe("A");
}, TaskCreationOptions.LongRunning);
publisher.ReceiveReady += Publisher_ReceiveReady;
Bien sûr, OnSubscription
doesn Je n'existe pas vraiment, mais je me demandais s'il y avait un moyen de le contourner.
J'ai besoin que mon serveur prenne connaissance de tous les abonnements.
Je pensais environ deux façons de la mettre en œuvre:
Créer une prise de routeur supplémentaire sur le serveur, tous les abonnements seront envoyés à la fois à la prise de l'éditeur et à la prise de routeur (désabonnements ainsi). Cela me permettra d'interroger les abonnements du routeur. Ne pas utiliser éditeur/abonné du tout, créer tout le mécanisme pubsub avec routeur/revendeur.
Que me suggérez-vous de faire?
Comme indiqué dans le guide zeroMQ, il n'est pas possible de suivre les abonnements, mais de consulter [Advanced Pub-Sub-Pattern] (http://zguide.zeromq.org/page:all#Reliable-Pub-Sub -Clone-Pattern), vous trouverez un modèle fiable-Pub-Sub (Clone), qui utilise une seconde prise ROUTER/DEALER pour réaliser ce que vous voulez – dwonisch