in src/Microsoft.Azure.SignalR/HubHost/ServiceHubDispatcher.cs [50:97]
public ServiceHubDispatcher(
IServiceProtocol serviceProtocol,
IHubContext<THub> context,
IServiceConnectionManager<THub> serviceConnectionManager,
IClientConnectionManager clientConnectionManager,
IServiceEndpointManager serviceEndpointManager,
IOptions<ServiceOptions> options,
ILoggerFactory loggerFactory,
IEndpointRouter router,
IServerNameProvider nameProvider,
ServerLifetimeManager serverLifetimeManager,
IClientConnectionFactory clientConnectionFactory,
IClientInvocationManager clientInvocationManager,
IServiceEventHandler serviceEventHandler,
IHubProtocolResolver hubProtocolResolver,
IConnectionFactory connectionFactory,
IServiceProvider serviceProvider
#if NET8_0_OR_GREATER
,
EndpointDataSource endpointDataSource
#endif
)
{
_serviceProtocol = serviceProtocol;
_serviceConnectionManager = serviceConnectionManager;
_clientConnectionManager = clientConnectionManager;
_serviceEndpointManager = serviceEndpointManager;
_options = options != null ? options.Value : throw new ArgumentNullException(nameof(options));
Context = context;
_router = router ?? throw new ArgumentNullException(nameof(router));
_loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
_logger = loggerFactory.CreateLogger<ServiceHubDispatcher<THub>>();
_clientConnectionFactory = clientConnectionFactory;
_nameProvider = nameProvider;
_hubName = typeof(THub).Name;
_serviceEventHandler = serviceEventHandler;
_clientInvocationManager = clientInvocationManager;
serverLifetimeManager?.Register(ShutdownAsync);
_hubProtocolResolver = hubProtocolResolver;
_connectionFactory = connectionFactory;
_serviceProvider = serviceProvider;
#if NET8_0_OR_GREATER
_dispatcherOptions = GetDispatcherOptions(endpointDataSource, typeof(THub));
#endif
}