public virtual void Initialize(IServiceProvider serviceProvider)
{
MessageBus = serviceProvider.GetRequiredService<IMessageBus>();
JsonSerializer = serviceProvider.GetRequiredService<JsonSerializer>();
LoggerFactory = serviceProvider.GetRequiredService<ILoggerFactory>();
Counters = serviceProvider.GetRequiredService<IPerformanceCounterManager>();
AckHandler = serviceProvider.GetRequiredService<IAckHandler>();
ProtectedData = serviceProvider.GetRequiredService<IProtectedData>();
UserIdProvider = serviceProvider.GetRequiredService<IUserIdProvider>();
Pool = serviceProvider.GetRequiredService<IMemoryPool>();
_options = serviceProvider.GetRequiredService<IOptions<SignalROptions>>().Value;
_transportManager = serviceProvider.GetRequiredService<ITransportManager>();
// Ensure that this server is listening for any ACKs sent over the bus.
serviceProvider.GetRequiredService<AckSubscriber>();
}