/// <summary> /// Starts the external to local message transfering. /// </summary> /// <param name="portForSubscribers">The port for local subscribers.</param> /// <param name="discoveryEndpoints">The endpoints to perform other brokers discovery.</param> private void StartExternalToLocalTransfer(int portForSubscribers, EndpointsRange discoveryEndpoints) { Task.Run(() => { using (var xsubSocket = new XSubscriberSocket()) using (var xpubSocket = new XPublisherSocket()) { xpubSocket.Bind($"tcp://localhost:{portForSubscribers}"); var dynamicSubscriber = new DynamicSubscriber(xsubSocket, discoveryEndpoints); dynamicSubscriber.StartDiscovering(); _externalToLocalProxy = new NetMQ.Proxy(xpubSocket, xsubSocket); _externalToLocalProxy.Start(); } }); }
public DynamicSubscriber(XSubscriberSocket subscriberSocket, EndpointsRange endpointsForDiscovering) { _subscriberSocket = subscriberSocket; _endpointsForDiscovering = endpointsForDiscovering; }