/// <summary> /// /// </summary> /// <param name="traceManager"></param> public MessageBus(ITraceManager traceManager, IPerformanceCounterManager performanceCounterManager) { _trace = traceManager; _counters = performanceCounterManager; _broker = new MessageBroker(_topics, _counters) { Trace = Trace }; }
/// <summary> /// /// </summary> /// <param name="traceManager"></param> /// <param name="performanceCounterManager"></param> public MessageBus(IStringMinifier stringMinifier, ITraceManager traceManager, IPerformanceCounterManager performanceCounterManager, IConfigurationManager configurationManager) { _stringMinifier = stringMinifier; _trace = traceManager; _counters = performanceCounterManager; _gcTimer = new Timer(_ => CheckTopics(), state: null, dueTime: _gcInterval, period: _gcInterval); _broker = new MessageBroker(_counters) { Trace = Trace }; // Keep topics alive for as long as we let connections wait until they are disconnected. // This should be a good enough estimate for how long until we should consider a topic dead. _topicTtl = configurationManager.DisconnectTimeout; }
public MessageBus(IStringMinifier stringMinifier, ITraceManager traceManager, IPerformanceCounterManager performanceCounterManager, IConfigurationManager configurationManager) { if (stringMinifier == null) { throw new ArgumentNullException("stringMinifier"); } if (traceManager == null) { throw new ArgumentNullException("traceManager"); } if (performanceCounterManager == null) { throw new ArgumentNullException("performanceCounterManager"); } if (configurationManager == null) { throw new ArgumentNullException("configurationManager"); } _stringMinifier = stringMinifier; _traceManager = traceManager; Counters = performanceCounterManager; _trace = _traceManager["SignalR.MessageBus"]; _gcTimer = new Timer(_ => CheckTopics(), state: null, dueTime: _gcInterval, period: _gcInterval); _broker = new MessageBroker(Counters) { Trace = Trace }; // Keep topics alive for twice as long as we let connections to reconnect. // Also add twice the keepalive interval since clients might take a while to notice they are disconnected. // This should be a good enough estimate for how long until we should consider a topic dead. var keepAlive = configurationManager.KeepAlive ?? TimeSpan.Zero; _topicTtl = TimeSpan.FromTicks((configurationManager.DisconnectTimeout.Ticks + keepAlive.Ticks) * 2); Topics = new ConcurrentDictionary<string, Topic>(); }
public MessageBus(IStringMinifier stringMinifier, ITraceManager traceManager, IPerformanceCounterManager performanceCounterManager, IConfigurationManager configurationManager) { if (stringMinifier == null) { throw new ArgumentNullException("stringMinifier"); } if (traceManager == null) { throw new ArgumentNullException("traceManager"); } if (performanceCounterManager == null) { throw new ArgumentNullException("performanceCounterManager"); } if (configurationManager == null) { throw new ArgumentNullException("configurationManager"); } _stringMinifier = stringMinifier; _traceManager = traceManager; Counters = performanceCounterManager; _trace = _traceManager["SignalR.MessageBus"]; _gcTimer = new Timer(_ => CheckTopics(), state: null, dueTime: _gcInterval, period: _gcInterval); _broker = new MessageBroker(Counters) { Trace = Trace }; // Keep topics alive for as long as we let connections wait until they are disconnected. // This should be a good enough estimate for how long until we should consider a topic dead. _topicTtl = configurationManager.DisconnectTimeout; Topics = new ConcurrentDictionary<string, Topic>(); }