Exemplo n.º 1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="traceManager"></param>
        public MessageBus(ITraceManager traceManager, IPerformanceCounterManager performanceCounterManager)
        {
            _trace = traceManager;
            _counters = performanceCounterManager;

            _broker = new MessageBroker(_topics, _counters)
            {
                Trace = Trace
            };
        }
Exemplo n.º 2
0
        /// <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;
        }
Exemplo n.º 3
0
        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>();
        }
Exemplo n.º 4
0
        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>();
        }