Пример #1
0
        private ISocket CreateSendingSocket()
        {
            var socket = socketFactory.CreatePublisherSocket();

            socket.SendRate = performanceCounterManager.GetCounter(KinoPerformanceCounters.IntercomSocketSendRate);
            socket.Bind(synodConfigProvider.LocalNode.Uri);

            logger.Info($"{nameof(IntercomMessageHub)} bound to: {synodConfigProvider.LocalNode.Uri.ToSocketAddress()}");

            return(socket);
        }
Пример #2
0
        private ISocket CreatePublisherSocket()
        {
            var socket = socketFactory.CreatePublisherSocket();

            socket.Bind(config.IntercomEndpoint);

            return(socket);
        }
Пример #3
0
        private ISocket CreateBroadcastSocket()
        {
            var socket = socketFactory.CreatePublisherSocket();

            socket.SendRate = performanceCounterManager.GetCounter(KinoPerformanceCounters.RendezvousBroadcastSocketSendRate);
            socket.Bind(configProvider.BroadcastUri);

            return(socket);
        }
Пример #4
0
        private ISocket CreateHeartBeatSocket()
        {
            var socket = socketFactory.CreatePublisherSocket();

            foreach (var uri in config.GetHeartBeatAddressRange())
            {
                try
                {
                    socket.Bind(uri);
                    config.SetActiveHeartBeatAddress(uri);

                    logger.Info($"{GetType().Name} started at Uri:{uri.ToSocketAddress()}");

                    return(socket);
                }
                catch (NetMQException)
                {
                    logger.Info($"{GetType().Name} failed to bind to {uri.ToSocketAddress()}, retrying with next endpoint...");
                }
            }
            socket?.Dispose();

            throw new Exception($"{GetType().Name} failed to bind to any of the configured HeartBeat endpoints!");
        }