0

我想知道是否有办法在新订阅发布者套接字时引发事件

例如:

        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;

当然,OnSubscription实际上并不存在,但我想知道是否有任何解决方法。

我需要我的服务器知道所有订阅。

我虽然有两种方法来实现它:

  1. 在服务器中创建一个额外的路由器套接字,所有订阅都将发送到发布者套接字和路由器套接字(取消订阅也是如此)。这将允许我从路由器轮询订阅。

  2. 根本不使用发布者/订阅者,使用路由器/经销商创建所有发布订阅机制。

你会建议我做什么?

4

1 回答 1

1

如果您使用 XPUB 而不是 PUB 套接字,您可以像在任何其他套接字类型上接收常规消息一样接收订阅消息。

于 2017-01-12T14:56:25.680 回答