Esempio n. 1
0
        private async Task Setup()
        {
            _peerChallenger = ContainerProvider.Container.Resolve <IPeerChallenger>();

            var eventLoopGroupFactoryConfiguration = new EventLoopGroupFactoryConfiguration
            {
                TcpClientHandlerWorkerThreads = 2,
                TcpServerHandlerWorkerThreads = 3,
                UdpServerHandlerWorkerThreads = 4,
                UdpClientHandlerWorkerThreads = 5
            };

            var keySigner = Substitute.For <IKeySigner>();

            keySigner.Verify(Arg.Any <ISignature>(), Arg.Any <byte[]>(), default).ReturnsForAnyArgs(true);
            var signature = Substitute.For <ISignature>();

            keySigner.Sign(Arg.Any <byte[]>(), default).ReturnsForAnyArgs(signature);

            _peerService = new PeerService(new UdpServerEventLoopGroupFactory(eventLoopGroupFactoryConfiguration),
                                           new PeerServerChannelFactory(ContainerProvider.Container.Resolve <IPeerMessageCorrelationManager>(),
                                                                        ContainerProvider.Container.Resolve <IBroadcastManager>(),
                                                                        keySigner,
                                                                        ContainerProvider.Container.Resolve <IPeerIdValidator>(),
                                                                        ContainerProvider.Container.Resolve <IPeerSettings>()),
                                           new DiscoveryHelper.DevDiscover(),
                                           ContainerProvider.Container.Resolve <IEnumerable <IP2PMessageObserver> >(),
                                           _peerSettings,
                                           ContainerProvider.Container.Resolve <ILogger>(),
                                           ContainerProvider.Container.Resolve <IHealthChecker>());

            await _peerService.StartAsync();
        }
 public PeerHeartbeatChecker(ILogger logger,
                             IPeerRepository peerRepository,
                             IPeerChallenger peerChallenger,
                             int checkHeartbeatIntervalSeconds,
                             int maxNonResponsiveCounter)
 {
     _logger = logger;
     _nonResponsivePeerMap    = new ConcurrentDictionary <string, int>();
     _peerRepository          = peerRepository;
     _maxNonResponsiveCounter = maxNonResponsiveCounter;
     _peerChallenger          = peerChallenger;
     _checkHeartbeatInterval  = TimeSpan.FromSeconds(checkHeartbeatIntervalSeconds);
 }
Esempio n. 3
0
 public PingResponseObserver(ILogger logger, IPeerChallenger peerChallenger)
     : base(logger)
 {
     _peerChallenger        = peerChallenger;
     ResponseMessageSubject = new ReplaySubject <IPeerClientMessageDto>(1);
 }