public ServiceLifetimeManager(
            IServiceConnectionManager <THub> serviceConnectionManager,
            IClientConnectionManager clientConnectionManager,
            IHubProtocolResolver protocolResolver,
            ILogger <ServiceLifetimeManager <THub> > logger,
            AzureSignalRMarkerService marker,
            IOptions <HubOptions> globalHubOptions,
            IOptions <HubOptions <THub> > hubOptions,
            IBlazorDetector blazorDetector)
            : 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;

            if (hubOptions.Value.SupportedProtocols != null && hubOptions.Value.SupportedProtocols.Any(x => x.Equals(Constants.Protocol.BlazorPack, StringComparison.OrdinalIgnoreCase)))
            {
                blazorDetector?.TrySetBlazor(typeof(THub).Name, true);
            }
        }
 public NegotiateHandler(
     IOptions <HubOptions> globalHubOptions,
     IOptions <HubOptions <THub> > hubOptions,
     IServiceEndpointManager endpointManager,
     IEndpointRouter router,
     IUserIdProvider userIdProvider,
     IServerNameProvider nameProvider,
     IConnectionRequestIdProvider connectionRequestIdProvider,
     IOptions <ServiceOptions> options,
     IBlazorDetector blazorDetector,
     ILogger <NegotiateHandler <THub> > logger)
 {
     _logger                      = logger ?? throw new ArgumentNullException(nameof(logger));
     _endpointManager             = endpointManager ?? throw new ArgumentNullException(nameof(endpointManager));
     _router                      = router ?? throw new ArgumentNullException(nameof(router));
     _serverName                  = nameProvider?.GetName();
     _userIdProvider              = userIdProvider ?? throw new ArgumentNullException(nameof(userIdProvider));
     _connectionRequestIdProvider = connectionRequestIdProvider ?? throw new ArgumentNullException(nameof(connectionRequestIdProvider));
     _claimsProvider              = options?.Value?.ClaimsProvider;
     _diagnosticClientFilter      = options?.Value?.DiagnosticClientFilter;
     _blazorDetector              = blazorDetector ?? new DefaultBlazorDetector();
     _mode = options.Value.ServerStickyMode;
     _enableDetailedErrors   = globalHubOptions.Value.EnableDetailedErrors == true;
     _endpointsCount         = options.Value.Endpoints.Length;
     _maxPollInterval        = options.Value.MaxPollIntervalInSeconds;
     _transportTypeDetector  = options.Value.TransportTypeDetector;
     _customHandshakeTimeout = GetCustomHandshakeTimeout(hubOptions.Value.HandshakeTimeout ?? globalHubOptions.Value.HandshakeTimeout);
     _hubName = typeof(THub).Name;
 }
Esempio n. 3
0
 public NegotiateHandler(
     IOptions <HubOptions> hubOptions,
     IServiceEndpointManager endpointManager,
     IEndpointRouter router,
     IUserIdProvider userIdProvider,
     IServerNameProvider nameProvider,
     IConnectionRequestIdProvider connectionRequestIdProvider,
     IOptions <ServiceOptions> options,
     IBlazorDetector blazorDetector)
 {
     _endpointManager             = endpointManager ?? throw new ArgumentNullException(nameof(endpointManager));
     _router                      = router ?? throw new ArgumentNullException(nameof(router));
     _serverName                  = nameProvider?.GetName();
     _userIdProvider              = userIdProvider ?? throw new ArgumentNullException(nameof(userIdProvider));
     _connectionRequestIdProvider = connectionRequestIdProvider ?? throw new ArgumentNullException(nameof(connectionRequestIdProvider));
     _claimsProvider              = options?.Value?.ClaimsProvider;
     _diagnosticClientFilter      = options?.Value?.DiagnosticClientFilter;
     _blazorDetector              = blazorDetector ?? new DefaultBlazorDetector();
     _mode = options.Value.ServerStickyMode;
     _enableDetailedErrors = hubOptions.Value.EnableDetailedErrors == true;
     _endpointsCount       = options.Value.Endpoints.Length;
     _maxPollInterval      = options.Value.MaxPollIntervalInSeconds;
 }
        private HubLifetimeManager <TestHub> MockLifetimeManager(IServiceConnectionManager <TestHub> serviceConnectionManager, IClientConnectionManager clientConnectionManager = null, IBlazorDetector blazorDetector = null)
        {
            clientConnectionManager ??= new ClientConnectionManager();

            var protocolResolver = new DefaultHubProtocolResolver(new IHubProtocol[]
            {
                new JsonHubProtocol(),
                new MessagePackHubProtocol(),
                new CustomHubProtocol(),
            },
                                                                  NullLogger <DefaultHubProtocolResolver> .Instance
                                                                  );
            IOptions <HubOptions> globalHubOptions = Options.Create(new HubOptions()
            {
                SupportedProtocols = new List <string>()
                {
                    MockProtocol
                }
            });
            IOptions <HubOptions <TestHub> > localHubOptions = Options.Create(new HubOptions <TestHub>()
            {
                SupportedProtocols = new List <string>()
                {
                    MockProtocol
                }
            });

            return(new ServiceLifetimeManager <TestHub>(
                       serviceConnectionManager,
                       clientConnectionManager,
                       protocolResolver,
                       Logger,
                       Marker,
                       globalHubOptions,
                       localHubOptions,
                       blazorDetector
                       ));
        }