/// <summary> /// Adds scale-out to a <see cref="ISignalRServerBuilder"/>, using a shared Redis server. /// </summary> /// <param name="servicebuilder">The <see cref="ISignalRServerBuilder"/>.</param> /// <param name="redisConnectionString">The connection string used to connect to the Redis server.</param> /// <returns>The same instance of the <see cref="ISignalRServerBuilder"/> for chaining.</returns> public static WebSocketServerBuilder AddStackExchangeRedis(this WebSocketServerBuilder servicebuilder, string redisConnectionString) { return(AddStackExchangeRedis(servicebuilder, o => { o.Configuration = ConfigurationOptions.Parse(redisConnectionString); })); }
static void Main(string[] args) { var configBuilder = new ConfigurationBuilder() .AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json"), optional: true, reloadOnChange: true) .AddEnvironmentVariables() .AddCommandLine(args); var configuration = configBuilder.Build(); IServiceCollection services = new ServiceCollection(); services.AddLogging(builder => { builder.AddConsole(); }); FleckLog.Level = Fleck.LogLevel.Error; var build = new WebSocketServerBuilder(services); var redis = configuration["Redis"]; var address = configuration["WebSocketListenAddres"]; build.AddStackExchangeRedis(redis) .UseHandlerMessage <GroupHandler>("opt.group") .UseHandlerMessage <GroupSendHandler>("opt.sendgroup") .UseHandlerMessage <TestHandler>("opt.test") .Build((option) => { option.Location = address; }).Start(); var input = Console.ReadLine(); while (input != "exit") { input = Console.ReadLine(); } }
/// <summary> /// Adds scale-out to a <see cref="ISignalRServerBuilder"/>, using a shared Redis server. /// </summary> /// <param name="servicebuilder">The <see cref="ISignalRServerBuilder"/>.</param> /// <param name="configure">A callback to configure the Redis options.</param> /// <returns>The same instance of the <see cref="ISignalRServerBuilder"/> for chaining.</returns> public static WebSocketServerBuilder AddStackExchangeRedis(this WebSocketServerBuilder servicebuilder, Action <RedisOptions> configure) { servicebuilder.Services.Configure(configure); servicebuilder.Services.AddSingleton(typeof(IConnectionLifetimeManager), typeof(RedisConnectionLifetimeManager)); return(servicebuilder); }
/// <summary> /// Adds scale-out to a <see cref="ISignalRServerBuilder"/>, using a shared Redis server. /// </summary> /// <param name="servicebuilder">The <see cref="ISignalRServerBuilder"/>.</param> /// <returns>The same instance of the <see cref="ISignalRServerBuilder"/> for chaining.</returns> public static WebSocketServerBuilder AddStackExchangeRedis(this WebSocketServerBuilder servicebuilder) { return(AddStackExchangeRedis(servicebuilder, o => { })); }