示例#1
0
        public RedisSocketServer(
            IServiceProvider services,
            LocalStage localStage,
            ITelemetry telemetry,
            ILogger <RedisSocketServer> logger,
            IOptions <NanoServiceOptions> serviceOptions,
            IOptions <RedisOptions> redisOptions)
        {
            this._services       = services;
            this._serviceOptions = serviceOptions.Value;
            this._redisOptions   = redisOptions.Value;
            this._localStage     = localStage;
            this._telemetry      = telemetry;

            _logger = logger;
        }
示例#2
0
        public void ConfigureDefaults()
        {
            if (!_serviceCollection.Any(s => s.ServiceType == typeof(ITransportSerializer)))
            {
                _serviceCollection.AddSingleton <ITransportSerializer, JsonTransportSerializer>();
            }

            if (!_serviceCollection.Any(s => s.ServiceType == typeof(IActorDirectory)))
            {
                _serviceCollection.AddSingleton <IActorDirectory, MemoryActorDirectory>();
            }

            if (!_serviceCollection.Any(s => s.ServiceType == typeof(IRemoteSocketManager)))
            {
                _serviceCollection.AddSingleton <IRemoteSocketManager, ZMQRemoteSocket>();
            }

            if (!_serviceCollection.Any(s => s.ServiceType == typeof(LocalStage)))
            {
                _serviceCollection.AddSingleton <LocalStage>((p) => {
                    var stage     = new LocalStage(p, p.GetRequiredService <IActorDirectory>());
                    stage.Enabled = false;
                    return(stage);
                });
            }

            if (!_serviceCollection.Any(s => s.ServiceType == typeof(IOptions <TcpOptions>)))
            {
                _serviceCollection.Configure <TcpOptions>((p) => new TcpOptions());
            }

            if (!_serviceCollection.Any(s => s.ServiceType == typeof(RemoteStage)))
            {
                _serviceCollection.AddSingleton <RemoteStage>();
            }
        }