internal RedisMessageBus(IDependencyResolver resolver, RedisScaleoutConfiguration configuration, IRedisConnection connection, bool connectAutomatically) : base(resolver, configuration) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } _connection = connection; _connectionString = configuration.ConnectionString; _db = configuration.Database; _key = configuration.EventKey; var traceManager = resolver.Resolve <ITraceManager>(); _trace = traceManager["SignalR." + typeof(RedisMessageBus).Name]; ReconnectDelay = TimeSpan.FromSeconds(2); if (connectAutomatically) { ThreadPool.QueueUserWorkItem(_ => { var ignore = ConnectWithRetry(); }); } }
/// <summary> /// Use Redis as the messaging backplane for scaling out of ASP.NET SignalR applications in a web farm. /// </summary> /// <param name="resolver">The dependency resolver</param> /// <param name="configuration">The Redis scale-out configuration options.</param> /// <returns>The dependency resolver.</returns> public static IDependencyResolver UseRedis(this IDependencyResolver resolver, RedisScaleoutConfiguration configuration) { var bus = new Lazy <RedisMessageBus>(() => new RedisMessageBus(resolver, configuration, new RedisConnection())); resolver.Register(typeof(IMessageBus), () => bus.Value); return(resolver); }
/// <summary> /// Use Redis as the messaging backplane for scaling out of ASP.NET SignalR applications in a web farm. /// </summary> /// <param name="resolver">The dependency resolver.</param> /// <param name="server">The Redis server address.</param> /// <param name="port">The Redis server port.</param> /// <param name="password">The Redis server password.</param> /// <param name="eventKey">The Redis event key to use.</param> /// <returns>The dependency resolver.</returns> public static IDependencyResolver UseRedis(this IDependencyResolver resolver, string server, int port, string password, string eventKey) { var configuration = new RedisScaleoutConfiguration(server, port, password, eventKey); return(UseRedis(resolver, configuration)); }
public RedisMessageBus(IDependencyResolver resolver, RedisScaleoutConfiguration configuration, IRedisConnection connection) : this(resolver, configuration, connection, true) { }