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); }
public PingResponseObserver(ILogger logger, IPeerChallenger peerChallenger) : base(logger) { _peerChallenger = peerChallenger; ResponseMessageSubject = new ReplaySubject <IPeerClientMessageDto>(1); }