Exemplo n.º 1
0
 /// <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);
     }));
 }
Exemplo n.º 2
0
        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();
            }
        }
Exemplo n.º 3
0
 /// <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);
 }
Exemplo n.º 4
0
 /// <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 => { }));
 }