/// <summary> /// Initializes a new instance of the <see cref="MessageHub"/> class. /// </summary> /// <param name="messageBus">The message bus.</param> /// <param name="connectionManager">The connection manager.</param> /// <param name="traceManager">The trace manager.</param> /// <param name="sessionValidatorService">The session validator service.</param> /// <param name="sessionMappings">The session mappings.</param> /// <param name="counters">The counters.</param> /// <param name="unblockGroupSend">if set to <c>true</c> [unblock group send].</param> public MessageHub( IMessageBus messageBus, IConnectionManager connectionManager, ITraceManager traceManager, ISessionValidatorService sessionValidatorService, ISessionMappings sessionMappings, IMagicHubPerformanceCounterManager counters, bool unblockGroupSend) : this(messageBus, connectionManager, traceManager, sessionValidatorService, sessionMappings, counters) { _unblockGroupSend = unblockGroupSend; }
/// <summary> /// Initializes a new instance of the <see cref="TopicBroker" /> class. /// </summary> /// <param name="traceManager">The trace manager to use for tracing. Should contain a trace /// source named SignalR.MagicHub</param> /// <param name="messageHub">The message hub.</param> /// <param name="sessionValidatorService">The session validator service.</param> /// <param name="sessionStateProvider">The session state provider.</param> /// <param name="sessionMappingStore">The session mapping store.</param> /// <param name="hubReleaser">Optional. The hub releaser. Can release hub instance from an IoC store.</param> public TopicBroker( ITraceManager traceManager, IMessageHub messageHub, ISessionValidatorService sessionValidatorService, ISessionStateProvider sessionStateProvider, ISessionMappings sessionMappingStore, IHubReleaser hubReleaser) { AssertNotNull(traceManager, "traceManager"); AssertNotNull(messageHub, "messageHub"); AssertNotNull(sessionValidatorService, "sessionValidatorService"); AssertNotNull(messageHub, "sessionStateProvider"); AssertNotNull(messageHub, "sessionMappingStore"); _traceManager = traceManager; _messageHub = messageHub; _sessionValidatorService = sessionValidatorService; _sessionStateProvider = sessionStateProvider; _sessionToConnectionId = sessionMappingStore; // This is optional _hubReleaser = hubReleaser; }
/// <summary> /// Initializes a new instance of the <see cref="MessageHub"/> class. /// </summary> /// <param name="messageBus">The message bus.</param> /// <param name="connectionManager">The connection manager.</param> /// <param name="traceManager">The trace manager.</param> /// <param name="sessionValidatorService">The session validator service.</param> /// <param name="sessionMappings">The session mappings.</param> /// <param name="counters">The counters.</param> public MessageHub( IMessageBus messageBus, IConnectionManager connectionManager, ITraceManager traceManager, ISessionValidatorService sessionValidatorService, ISessionMappings sessionMappings, IMagicHubPerformanceCounterManager counters) { var context = connectionManager.GetHubContext <TopicBroker, ITopicBrokerClientProxy>(); _messageBus = messageBus; Clients = context.Clients; Groups = context.Groups; _traceManager = traceManager; _sessionMappings = sessionMappings; _counters = counters; if (sessionValidatorService != null) { sessionValidatorService.SessionExpired += SessionValidatorServiceOnSessionExpired; sessionValidatorService.SessionKeptAlive += SessionValidatorServiceOnSessionKeptAlive; sessionValidatorService.SessionExpiring += SessionValidatorServiceSessionExpiring; } }