示例#1
0
        private ISocket CreateMulticastListeningSocket()
        {
            var socket = socketFactory.CreateSubscriberSocket();

            socket.ReceiveRate = performanceCounterManager.GetCounter(KinoPerformanceCounters.IntercomMulticastSocketReceiveRate);
            socket.Subscribe();
            foreach (var node in synodConfig.Synod)
            {
                socket.Connect(node, waitUntilConnected: true);

                logger.Info($"{nameof(IntercomMessageHub)} connected to: {node.ToSocketAddress()} (Multicast)");
            }

            return(socket);
        }
        private ISocket CreateSubscriberSocket()
        {
            var socket = socketFactory.CreateSubscriberSocket();

            socket.Connect(config.IntercomEndpoint, waitUntilConnected: true);
            socket.Subscribe();

            return(socket);
        }
示例#3
0
        private ISocket CreateClusterMonitorSubscriptionSocket()
        {
            var rendezvousServer = rendezvousCluster.GetCurrentRendezvousServer();
            var socket           = socketFactory.CreateSubscriberSocket();

            socket.ReceiveRate = performanceCounterManager.GetCounter(KinoPerformanceCounters.AutoDiscoveryListenerSocketReceiveRate);
            socket.Connect(rendezvousServer.BroadcastUri, true);
            socket.Subscribe();

            logger.Info($"Connected to Rendezvous {rendezvousServer.BroadcastUri.AbsoluteUri}");

            return(socket);
        }
示例#4
0
        private ISocket CreateListeningSocket()
        {
            var socket = socketFactory.CreateSubscriberSocket();

            socket.ReceiveRate = performanceCounterManager.GetCounter(KinoPerformanceCounters.IntercomMulticastSocketReceiveRate);
            socket.Subscribe();
            foreach (var node in synodConfigProvider.Synod)
            {
                socket.Connect(node.Uri, true);

                logger.Info($"{nameof(IntercomMessageHub)} connected to: {node.Uri.ToSocketAddress()}");
            }
            if (ShouldDoHeartBeating())
            {
                socket.Connect(synodConfigProvider.IntercomEndpoint, true);
            }

            return(socket);
        }