コード例 #1
0
 public MassTransitHubLifetimeManager(IPublishEndpoint publishEndpoint,
                                      IClientFactory clientFactory,
                                      IHubProtocolResolver hubProtocolResolver)
 {
     _publishEndpoint = publishEndpoint;
     _groupManagementRequestClient = clientFactory.CreateRequestClient <GroupManagement <THub> >(TimeSpan.FromSeconds(20));
     _protocols = hubProtocolResolver.AllProtocols;
 }
コード例 #2
0
 public MassTransitHubLifetimeManager(IPublishEndpoint publishEndpoint,
                                      IRequestClient <GroupManagement <THub> > groupManagementRequestClient,
                                      IHubProtocolResolver hubProtocolResolver)
 {
     _publishEndpoint = publishEndpoint;
     _groupManagementRequestClient = groupManagementRequestClient;
     _protocols = hubProtocolResolver.AllProtocols;
 }
コード例 #3
0
 public MassTransitMessageDataHubLifetimeManager(HubLifetimeManagerOptions <THub> hubLifetimeManagerOptions,
                                                 IBus bus,
                                                 IHubProtocolResolver hubProtocolResolver,
                                                 IMessageDataRepository repository)
     : base(hubLifetimeManagerOptions, bus, bus.CreateClientFactory().CreateRequestClient <GroupManagement <THub> >(), hubProtocolResolver)
 {
     _repository = repository;
 }
コード例 #4
0
 public MassTransitMessageDataHubLifetimeManager(IPublishEndpoint publishEndpoint,
                                                 IClientFactory clientFactory,
                                                 IHubProtocolResolver hubProtocolResolver,
                                                 IMessageDataRepository repository)
     : base(publishEndpoint, clientFactory, hubProtocolResolver)
 {
     _repository = repository;
 }
コード例 #5
0
 public PostgreSqlHubLifetimeManager(IOptions <PostgreSqlOptions> options, IHubProtocolResolver hubProtocolResolver,
                                     Func <NpgsqlConnection> connectionFactory)
 {
     _connectionFactory = connectionFactory;
     _options           = options.Value;
     _channels          = new PostgreSqlChannels(options.Value.Prefix + typeof(THub).FullName);
     _protocol          = new PostgreSqlProtocol(hubProtocolResolver.AllProtocols);
     _ = EnsureRedisServerConnection();
 }
コード例 #6
0
    /// <summary>
    /// Initializes a new instance of the <see cref="HubConnectionHandler{THub}"/> class.
    /// </summary>
    /// <param name="lifetimeManager">The hub lifetime manager.</param>
    /// <param name="protocolResolver">The protocol resolver used to resolve the protocols between client and server.</param>
    /// <param name="globalHubOptions">The global options used to initialize hubs.</param>
    /// <param name="hubOptions">Hub specific options used to initialize hubs. These options override the global options.</param>
    /// <param name="loggerFactory">The logger factory.</param>
    /// <param name="userIdProvider">The user ID provider used to get the user ID from a hub connection.</param>
    /// <param name="serviceScopeFactory">The service scope factory.</param>
    /// <remarks>This class is typically created via dependency injection.</remarks>
    public HubConnectionHandler(HubLifetimeManager <THub> lifetimeManager,
                                IHubProtocolResolver protocolResolver,
                                IOptions <HubOptions> globalHubOptions,
                                IOptions <HubOptions <THub> > hubOptions,
                                ILoggerFactory loggerFactory,
                                IUserIdProvider userIdProvider,
                                IServiceScopeFactory serviceScopeFactory
                                )
    {
        _protocolResolver = protocolResolver;
        _lifetimeManager  = lifetimeManager;
        _loggerFactory    = loggerFactory;
        _hubOptions       = hubOptions.Value;
        _globalHubOptions = globalHubOptions.Value;
        _logger           = loggerFactory.CreateLogger <HubConnectionHandler <THub> >();
        _userIdProvider   = userIdProvider;

        _enableDetailedErrors = false;
        bool disableImplicitFromServiceParameters;

        List <IHubFilter>?hubFilters = null;

        if (_hubOptions.UserHasSetValues)
        {
            _maximumMessageSize   = _hubOptions.MaximumReceiveMessageSize;
            _enableDetailedErrors = _hubOptions.EnableDetailedErrors ?? _enableDetailedErrors;
            _maxParallelInvokes   = _hubOptions.MaximumParallelInvocationsPerClient;
            disableImplicitFromServiceParameters = _hubOptions.DisableImplicitFromServicesParameters;

            if (_hubOptions.HubFilters != null)
            {
                hubFilters = new List <IHubFilter>(_hubOptions.HubFilters);
            }
        }
        else
        {
            _maximumMessageSize   = _globalHubOptions.MaximumReceiveMessageSize;
            _enableDetailedErrors = _globalHubOptions.EnableDetailedErrors ?? _enableDetailedErrors;
            _maxParallelInvokes   = _globalHubOptions.MaximumParallelInvocationsPerClient;
            disableImplicitFromServiceParameters = _globalHubOptions.DisableImplicitFromServicesParameters;

            if (_globalHubOptions.HubFilters != null)
            {
                hubFilters = new List <IHubFilter>(_globalHubOptions.HubFilters);
            }
        }

        _dispatcher = new DefaultHubDispatcher <THub>(
            serviceScopeFactory,
            new HubContext <THub>(lifetimeManager),
            _enableDetailedErrors,
            disableImplicitFromServiceParameters,
            new Logger <DefaultHubDispatcher <THub> >(loggerFactory),
            hubFilters,
            lifetimeManager);
    }
コード例 #7
0
 protected BaseMassTransitHubLifetimeManager(HubLifetimeManagerOptions <THub> hubLifetimeManagerOptions,
                                             IPublishEndpoint publishEndpoint,
                                             IRequestClient <GroupManagement <THub> > groupManagementRequestClient,
                                             IHubProtocolResolver hubProtocolResolver)
 {
     _hubLifetimeManagerOptions   = hubLifetimeManagerOptions;
     PublishEndpoint              = publishEndpoint;
     GroupManagementRequestClient = groupManagementRequestClient;
     Protocols = hubProtocolResolver.AllProtocols;
 }
コード例 #8
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="bus"></param>
        /// <param name="hubProtocolResolver"></param>
        /// <param name="logger"></param>
        public RebusHubLifetimeManager(IBus bus, IHubProtocolResolver hubProtocolResolver, ILogger <RebusHubLifetimeManager <THub> > logger)
        {
            _bus       = bus;
            _logger    = logger;
            _protocols = hubProtocolResolver.AllProtocols;

            Connections      = new HubConnectionStore();
            GroupConnections = new ConcurrentDictionary <string, HubConnectionStore>();
            UserConnections  = new ConcurrentDictionary <string, HubConnectionStore>();
            ServerName       = $"{Environment.MachineName}-{Guid.NewGuid():N}";
        }
コード例 #9
0
 public RabbitMQHubLifetimeManager(ILoggerFactory loggerFactory,
                                   ILogger <RabbitMQHubLifetimeManager <THub> > logger,
                                   IOptions <RabbitMQOptions> options,
                                   IHubProtocolResolver hubProtocolResolver)
 {
     _logger = logger;
     _bus    = new RabbitMQBus(options.Value,
                               new RabbitMQProtocol(hubProtocolResolver.AllProtocols),
                               loggerFactory.CreateLogger <RabbitMQBus>(),
                               _serverName);
     _ = EnsureRabbitMQServerConnection();
 }
コード例 #10
0
        public RedisHubLifetimeManager(ILogger <RedisHubLifetimeManager <THub> > logger,
                                       IOptions <RedisOptions> options,
                                       IHubProtocolResolver hubProtocolResolver)
        {
            _logger     = logger;
            _options    = options.Value;
            _ackHandler = new AckHandler();
            _channels   = new RedisChannels(typeof(THub).FullName);
            _protocol   = new RedisProtocol(hubProtocolResolver.AllProtocols);

            var writer = new LoggerTextWriter(logger);

            RedisLog.ConnectingToEndpoints(_logger, options.Value.Options.EndPoints, _serverName);
            _redisServerConnection = _options.Connect(writer);

            _redisServerConnection.ConnectionRestored += (_, e) =>
            {
                // We use the subscription connection type
                // Ignore messages from the interactive connection (avoids duplicates)
                if (e.ConnectionType == ConnectionType.Interactive)
                {
                    return;
                }

                RedisLog.ConnectionRestored(_logger);
            };

            _redisServerConnection.ConnectionFailed += (_, e) =>
            {
                // We use the subscription connection type
                // Ignore messages from the interactive connection (avoids duplicates)
                if (e.ConnectionType == ConnectionType.Interactive)
                {
                    return;
                }

                RedisLog.ConnectionFailed(_logger, e.Exception);
            };

            if (_redisServerConnection.IsConnected)
            {
                RedisLog.Connected(_logger);
            }
            else
            {
                RedisLog.NotConnected(_logger);
            }
            _bus = _redisServerConnection.GetSubscriber();

            SubscribeToAll();
            SubscribeToGroupManagementChannel();
            SubscribeToAckChannel();
        }
コード例 #11
0
        public RedisHubLifetimeManager(ILogger <RedisHubLifetimeManager <THub> > logger,
                                       IOptions <RedisOptions> options,
                                       IHubProtocolResolver hubProtocolResolver)
        {
            _logger     = logger;
            _options    = options.Value;
            _ackHandler = new AckHandler();
            _channels   = new RedisChannels(typeof(THub).FullName);
            _protocol   = new RedisProtocol(hubProtocolResolver.AllProtocols);

            RedisLog.ConnectingToEndpoints(_logger, options.Value.Options.EndPoints, _serverName);
        }
        public ShardingRedisHubLifetimeManager(ILogger <RedisHubLifetimeManager <THub> > logger,
                                               IOptions <ShardingRedisOptions> options,
                                               IHubProtocolResolver hubProtocolResolver)
        {
            _logger     = logger;
            _options    = options.Value;
            _ackHandler = new AckHandler();
            _channels   = new RedisChannels(typeof(THub).FullName);
            _protocol   = new RedisProtocol(hubProtocolResolver.AllProtocols);

            _ = EnsureRedisServerConnection();
        }
コード例 #13
0
 public ProxyHubConnectionHandler(
     HubLifetimeManager <THub> lifetimeManager,
     IHubProtocolResolver protocolResolver,
     IOptions <HubOptions> globalHubOptions,
     IOptions <HubOptions <THub> > hubOptions,
     ILoggerFactory loggerFactory,
     IUserIdProvider userIdProvider,
     IServiceScopeFactory serviceScopeFactory,
     IValueManagerStorageContainerInitializer storageContainerAccessor)
     : base(lifetimeManager, protocolResolver, globalHubOptions, hubOptions, loggerFactory, userIdProvider, serviceScopeFactory)
 {
     this.storageContainerInitializer = storageContainerAccessor;
 }
コード例 #14
0
        public DefaultHubMessageSerializer(IHubProtocolResolver hubProtocolResolver, IList <string> globalSupportedProtocols, IList <string> hubSupportedProtocols)
        {
            var supportedProtocols = hubSupportedProtocols ?? globalSupportedProtocols ?? Array.Empty <string>();

            foreach (var protocolName in supportedProtocols)
            {
                var protocol = hubProtocolResolver.GetProtocol(protocolName, (supportedProtocols as IReadOnlyList <string>) ?? supportedProtocols.ToList());
                if (protocol != null)
                {
                    _hubProtocols.Add(protocol);
                }
            }
        }
コード例 #15
0
        public HubHost(HubLifetimeManager <THub> lifetimeManager,
                       IHubProtocolResolver protocolResolver,
                       HubDispatcher <THub> hubDispatcher,
                       IOptions <HubHostOptions> options,
                       ILoggerFactory loggerFactory)
        {
            _lifetimeManager  = lifetimeManager ?? throw new ArgumentNullException(nameof(lifetimeManager));
            _protocolResolver = protocolResolver ?? throw new ArgumentNullException(nameof(protocolResolver));
            _hubDispatcher    = hubDispatcher ?? throw new ArgumentNullException(nameof(hubDispatcher));
            _options          = options != null ? options.Value : throw new ArgumentNullException(nameof(options));

            _loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
            _logger        = loggerFactory.CreateLogger <HubHost <THub> >();
        }
コード例 #16
0
        internal async Task <bool> NegotiateAsync(TimeSpan timeout, IHubProtocolResolver protocolResolver, IUserIdProvider userIdProvider)
        {
            try
            {
                using (var cts = new CancellationTokenSource())
                {
                    cts.CancelAfter(timeout);
                    while (await _connectionContext.Transport.Reader.WaitToReadAsync(cts.Token))
                    {
                        while (_connectionContext.Transport.Reader.TryRead(out var buffer))
                        {
                            if (NegotiationProtocol.TryParseMessage(buffer, out var negotiationMessage))
                            {
                                var protocol = protocolResolver.GetProtocol(negotiationMessage.Protocol, this);

                                var transportCapabilities = Features.Get <IConnectionTransportFeature>()?.TransportCapabilities
                                                            ?? throw new InvalidOperationException("Unable to read transport capabilities.");

                                var dataEncoder = (protocol.Type == ProtocolType.Binary && (transportCapabilities & TransferMode.Binary) == 0)
                                    ? (IDataEncoder)Base64Encoder
                                    : PassThroughEncoder;

                                var transferModeFeature = Features.Get <ITransferModeFeature>() ??
                                                          throw new InvalidOperationException("Unable to read transfer mode.");

                                transferModeFeature.TransferMode =
                                    (protocol.Type == ProtocolType.Binary && (transportCapabilities & TransferMode.Binary) != 0)
                                        ? TransferMode.Binary
                                        : TransferMode.Text;

                                ProtocolReaderWriter = new HubProtocolReaderWriter(protocol, dataEncoder);

                                _logger.UsingHubProtocol(protocol.Name);

                                UserIdentifier = userIdProvider.GetUserId(this);

                                return(true);
                            }
                        }
                    }
                }
            }
            catch (OperationCanceledException)
            {
                _logger.NegotiateCanceled();
            }

            return(false);
        }
コード例 #17
0
 public HubEndPoint(HubLifetimeManager <THub> lifetimeManager,
                    IHubProtocolResolver protocolResolver,
                    IOptions <HubOptions> hubOptions,
                    ILoggerFactory loggerFactory,
                    IUserIdProvider userIdProvider,
                    IHubInvoker <THub> hubInvoker)
 {
     _protocolResolver = protocolResolver;
     _lifetimeManager  = lifetimeManager;
     _loggerFactory    = loggerFactory;
     _hubOptions       = hubOptions.Value;
     _logger           = loggerFactory.CreateLogger <HubEndPoint <THub> >();
     _userIdProvider   = userIdProvider;
     _hubInvoker       = hubInvoker;
 }
        public MsmqHubLifetimeManager(
            ILogger <MsmqHubLifetimeManager <THub> > logger,
            IOptions <MsmqOptions> options,
            IHubProtocolResolver hubProtocolResolver,
            IMsmqBus msmqBus)
        {
            this.logger     = logger;
            this.options    = options.Value;
            this.protocol   = new MsmqProtocol(hubProtocolResolver.AllProtocols);
            this.msmqBus    = msmqBus;
            this.queues     = new MsmqQueues(this.options.ApplicationName);
            this.ackHandler = new AckHandler();

            MsmqLog.ConnectingToEndpoints(this.logger, this.options.ConnectionString, this.options.ApplicationName);
            _ = this.EnsureMsmqServerConnection();
        }
コード例 #19
0
        public HubEndPoint(HubLifetimeManager <THub> lifetimeManager,
                           IHubProtocolResolver protocolResolver,
                           IHubContext <THub> hubContext,
                           IOptions <HubOptions> hubOptions,
                           ILogger <HubEndPoint <THub> > logger,
                           IServiceScopeFactory serviceScopeFactory)
        {
            _protocolResolver    = protocolResolver;
            _lifetimeManager     = lifetimeManager;
            _hubContext          = hubContext;
            _hubOptions          = hubOptions;
            _logger              = logger;
            _serviceScopeFactory = serviceScopeFactory;

            DiscoverHubMethods();
        }
コード例 #20
0
ファイル: HubEndPoint.cs プロジェクト: RobGibbens/SignalR
 public HubEndPoint(HubLifetimeManager <THub> lifetimeManager,
                    IHubProtocolResolver protocolResolver,
                    IOptions <HubOptions> globalHubOptions,
                    IOptions <HubOptions <THub> > hubOptions,
                    ILoggerFactory loggerFactory,
                    IUserIdProvider userIdProvider,
                    HubDispatcher <THub> dispatcher)
 {
     _protocolResolver = protocolResolver;
     _lifetimeManager  = lifetimeManager;
     _loggerFactory    = loggerFactory;
     _hubOptions       = hubOptions.Value;
     _globalHubOptions = globalHubOptions.Value;
     _logger           = loggerFactory.CreateLogger <HubEndPoint <THub> >();
     _userIdProvider   = userIdProvider;
     _dispatcher       = dispatcher;
 }
コード例 #21
0
        public HubConnectionHandler(HubLifetimeManager <THub> lifetimeManager,
                                    IHubProtocolResolver protocolResolver,
                                    IOptions <HubOptions> globalHubOptions,
                                    IOptions <HubOptions <THub> > hubOptions,
                                    ILoggerFactory loggerFactory,
                                    IUserIdProvider userIdProvider,
                                    HubDispatcher <THub> dispatcher)
        {
            _protocolResolver = protocolResolver;
            _lifetimeManager  = lifetimeManager;
            _loggerFactory    = loggerFactory;
            _hubOptions       = hubOptions.Value;
            _globalHubOptions = globalHubOptions.Value;
            _logger           = loggerFactory.CreateLogger <HubConnectionHandler <THub> >();
            _userIdProvider   = userIdProvider;
            _dispatcher       = dispatcher;

            _enableDetailedErrors = _hubOptions.EnableDetailedErrors ?? _globalHubOptions.EnableDetailedErrors ?? false;
        }
コード例 #22
0
        public HubEndPoint(HubLifetimeManager <THub> lifetimeManager,
                           IHubProtocolResolver protocolResolver,
                           IHubContext <THub> hubContext,
                           IOptions <HubOptions> hubOptions,
                           ILoggerFactory loggerFactory,
                           IServiceScopeFactory serviceScopeFactory,
                           IUserIdProvider userIdProvider)
        {
            _protocolResolver    = protocolResolver;
            _lifetimeManager     = lifetimeManager;
            _hubContext          = hubContext;
            _loggerFactory       = loggerFactory;
            _hubOptions          = hubOptions.Value;
            _logger              = loggerFactory.CreateLogger <HubEndPoint <THub> >();
            _serviceScopeFactory = serviceScopeFactory;
            _userIdProvider      = userIdProvider;

            DiscoverHubMethods();
        }
コード例 #23
0
        public DefaultHubMessageSerializer(IHubProtocolResolver hubProtocolResolver, IList <string> globalSupportedProtocols, IList <string> hubSupportedProtocols)
        {
            var supportedProtocols = hubSupportedProtocols ?? globalSupportedProtocols ?? Array.Empty <string>();

            foreach (var protocolName in supportedProtocols)
            {
                // blazorpack is meant to only be used by the ComponentHub
                // We remove it from the list here except when the Hub has a single protocol that is "blazorpack" because
                // that identifies it as the ComponentHub
                if (supportedProtocols.Count > 1 && string.Equals(protocolName, "blazorpack", StringComparison.OrdinalIgnoreCase))
                {
                    continue;
                }

                var protocol = hubProtocolResolver.GetProtocol(protocolName, (supportedProtocols as IReadOnlyList <string>) ?? supportedProtocols.ToList());
                if (protocol != null)
                {
                    _hubProtocols.Add(protocol);
                }
            }
        }
コード例 #24
0
        /// <summary>
        /// Initializes a new instance of the <see cref="HubConnectionHandler{THub}"/> class.
        /// </summary>
        /// <param name="lifetimeManager">The hub lifetime manager.</param>
        /// <param name="protocolResolver">The protocol resolver used to resolve the protocols between client and server.</param>
        /// <param name="globalHubOptions">The global options used to initialize hubs.</param>
        /// <param name="hubOptions">Hub specific options used to initialize hubs. These options override the global options.</param>
        /// <param name="loggerFactory">The logger factory.</param>
        /// <param name="userIdProvider">The user ID provider used to get the user ID from a hub connection.</param>
        /// <param name="dispatcher">The hub dispatcher used to dispatch incoming messages to hubs.</param>
        /// <remarks>This class is typically created via dependency injection.</remarks>
        public HubConnectionHandler(HubLifetimeManager <THub> lifetimeManager,
                                    IHubProtocolResolver protocolResolver,
                                    IOptions <HubOptions> globalHubOptions,
                                    IOptions <HubOptions <THub> > hubOptions,
                                    ILoggerFactory loggerFactory,
                                    IUserIdProvider userIdProvider,
#pragma warning disable PUB0001 // Pubternal type in public API
                                    HubDispatcher <THub> dispatcher
#pragma warning restore PUB0001
                                    )
        {
            _protocolResolver = protocolResolver;
            _lifetimeManager  = lifetimeManager;
            _loggerFactory    = loggerFactory;
            _hubOptions       = hubOptions.Value;
            _globalHubOptions = globalHubOptions.Value;
            _logger           = loggerFactory.CreateLogger <HubConnectionHandler <THub> >();
            _userIdProvider   = userIdProvider;
            _dispatcher       = dispatcher;

            _enableDetailedErrors = _hubOptions.EnableDetailedErrors ?? _globalHubOptions.EnableDetailedErrors ?? false;
        }
コード例 #25
0
        public ServiceLifetimeManager(
            IServiceConnectionManager <THub> serviceConnectionManager,
            IClientConnectionManager clientConnectionManager,
            IHubProtocolResolver protocolResolver,
            ILogger <ServiceLifetimeManager <THub> > logger,
            AzureSignalRMarkerService marker,
            IOptions <HubOptions> globalHubOptions,
            IOptions <HubOptions <THub> > hubOptions)
            : base(
                serviceConnectionManager,
                protocolResolver,
                globalHubOptions,
                hubOptions, logger)
        {
            // after core 3.0 UseAzureSignalR() is not required.
#if NETSTANDARD2_0
            if (!marker.IsConfigured)
            {
                throw new InvalidOperationException(MarkerNotConfiguredError);
            }
#endif
            _clientConnectionManager = clientConnectionManager;
        }
コード例 #26
0
        /// <summary>
        /// Constructs the <see cref="RedisHubLifetimeManager{THub}"/> with types from Dependency Injection.
        /// </summary>
        /// <param name="logger">The logger to write information about what the class is doing.</param>
        /// <param name="options">The <see cref="RedisOptions"/> that influence behavior of the Redis connection.</param>
        /// <param name="hubProtocolResolver">The <see cref="IHubProtocolResolver"/> to get an <see cref="IHubProtocol"/> instance when writing to connections.</param>
        /// <param name="globalHubOptions">The global <see cref="HubOptions"/>.</param>
        /// <param name="hubOptions">The <typeparamref name="THub"/> specific options.</param>
        public RedisHubLifetimeManager(ILogger <RedisHubLifetimeManager <THub> > logger,
                                       IOptions <RedisOptions> options,
                                       IHubProtocolResolver hubProtocolResolver,
                                       IOptions <HubOptions>?globalHubOptions,
                                       IOptions <HubOptions <THub> >?hubOptions)
        {
            _logger     = logger;
            _options    = options.Value;
            _ackHandler = new AckHandler();
            _channels   = new RedisChannels(typeof(THub).FullName !);
            if (globalHubOptions != null && hubOptions != null)
            {
                _protocol = new RedisProtocol(new DefaultHubMessageSerializer(hubProtocolResolver, globalHubOptions.Value.SupportedProtocols, hubOptions.Value.SupportedProtocols));
            }
            else
            {
                var supportedProtocols = hubProtocolResolver.AllProtocols.Select(p => p.Name).ToList();
                _protocol = new RedisProtocol(new DefaultHubMessageSerializer(hubProtocolResolver, supportedProtocols, null));
            }

            RedisLog.ConnectingToEndpoints(_logger, options.Value.Configuration.EndPoints, _serverName);
            _ = EnsureRedisServerConnection();
        }
コード例 #27
0
        public HubProxyHandler(
            IOptionsMonitor <UpstreamOptions> upstreamSettings,
            HubLifetimeManager <THub> lifetimeManager,
            IHubProtocolResolver protocolResolver,
            IOptions <HubOptions> globalHubOptions,
            IOptions <HubOptions <THub> > hubOptions,
            ILoggerFactory loggerFactory,
            IUserIdProvider userIdProvider,
            IServiceScopeFactory serviceScopeFactory,
            HttpServerlessMessageHandler <THub> upstream)
            : base(lifetimeManager, protocolResolver, globalHubOptions, hubOptions, loggerFactory, userIdProvider, serviceScopeFactory)
        {
            _protocolResolver = protocolResolver;
            _upstreamSettings = upstreamSettings;
            _lifetimeManager  = lifetimeManager;
            _loggerFactory    = loggerFactory;
            _hubOptions       = hubOptions.Value;
            _globalHubOptions = globalHubOptions.Value;
            _logger           = loggerFactory.CreateLogger <HubConnectionHandler <THub> >();
            _userIdProvider   = userIdProvider;
            _upstream         = upstream;

            _enableDetailedErrors = true;
        }
コード例 #28
0
        public HubProxyHandler(
            HubLifetimeManager <Hub> lifetimeManager,
            IHubProtocolResolver protocolResolver,
            IOptions <HubOptions> globalHubOptions,
            IOptions <HubOptions <Hub> > hubOptions,
            ILoggerFactory loggerFactory,
            IUserIdProvider userIdProvider,
            IServiceScopeFactory serviceScopeFactory,
            IHubProxyInvoker rest)
            : base(lifetimeManager, protocolResolver, globalHubOptions, hubOptions, loggerFactory, userIdProvider, serviceScopeFactory)
        {
            _protocolResolver = protocolResolver;
            _lifetimeManager  = lifetimeManager;
            _loggerFactory    = loggerFactory;
            _hubOptions       = hubOptions.Value;
            _globalHubOptions = globalHubOptions.Value;
            _logger           = loggerFactory.CreateLogger <HubConnectionHandler <Hub> >();
            _userIdProvider   = userIdProvider;
            _rest             = rest;

            _enableDetailedErrors = false;
            _maximumMessageSize   = _globalHubOptions.MaximumReceiveMessageSize;
            _enableDetailedErrors = _globalHubOptions.EnableDetailedErrors ?? _enableDetailedErrors;
        }
コード例 #29
0
        public ServiceLifetimeManager(IServiceConnectionManager <THub> serviceConnectionManager,
                                      IClientConnectionManager clientConnectionManager, IHubProtocolResolver protocolResolver,
                                      ILogger <ServiceLifetimeManager <THub> > logger, AzureSignalRMarkerService marker)
            : base(serviceConnectionManager, protocolResolver)
        {
            // after core 3.0 UseAzureSignalR() is not required.
#if !NETCOREAPP3_0
            if (!marker.IsConfigured)
            {
                throw new InvalidOperationException(MarkerNotConfiguredError);
            }
#endif

            _serviceConnectionManager = serviceConnectionManager;
            _clientConnectionManager  = clientConnectionManager;
            _allProtocols             = protocolResolver.AllProtocols;
            _logger = logger;
        }
コード例 #30
0
 /// <summary>
 /// Constructs the <see cref="RedisHubLifetimeManager{THub}"/> with types from Dependency Injection.
 /// </summary>
 /// <param name="logger">The logger to write information about what the class is doing.</param>
 /// <param name="options">The <see cref="RedisOptions"/> that influence behavior of the Redis connection.</param>
 /// <param name="hubProtocolResolver">The <see cref="IHubProtocolResolver"/> to get an <see cref="IHubProtocol"/> instance when writing to connections.</param>
 public RedisHubLifetimeManager(ILogger <RedisHubLifetimeManager <THub> > logger,
                                IOptions <RedisOptions> options,
                                IHubProtocolResolver hubProtocolResolver)
     : this(logger, options, hubProtocolResolver, globalHubOptions : null, hubOptions : null)
 {
 }