public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseSerilog((context, configuration) => { configuration.MinimumLevel.Debug() .MinimumLevel.Override("Microsoft", LogEventLevel.Information) .Enrich.FromLogContext() .WriteTo.Console() .WriteTo.File("logs//log.txt", rollingInterval: RollingInterval.Day, retainedFileCountLimit: 7); }) .ConfigureServices((hostContext, services) => { var animusUrl = hostContext.Configuration.GetValue <string>("AnimusUrl"); var animusKey = hostContext.Configuration.GetValue <string>("AnimusKey"); var influxDbUrl = hostContext.Configuration.GetValue <string>("InfluxDbUrl"); var maxWebSocketMessagesPerHour = hostContext.Configuration.GetValue <int>("MaxWebSocketMessagesPerHour"); var animusConfiguration = new AnimusConfiguration(animusKey, animusUrl); services.AddHostedService <Worker>(); services.AddTransient <IAnimusWebSocketEventHandler, AnimusWebSocketEventHandler>(); services.AddHttpClient <AnimusHeartHttpClient>(c => { c.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", animusKey); c.BaseAddress = new Uri(animusUrl); }); services.AddTransient <IInfluxService, InfluxServiceService>(); services.AddSingleton(new MessageCounter(maxWebSocketMessagesPerHour)); services.AddTransient <SlotCounter>(); services.AddTransient <IRight, Right>(); services.AddTransient <IAnimusWebSocketHandler, AnimusWebSocketHandler>(f => new AnimusWebSocketHandler(animusConfiguration)); services.AddTransient(sp => InfluxDBClientFactory.Create(influxDbUrl, Token)); });
public AnimusWebSocketHandler(AnimusConfiguration configuration) { _configuration = configuration; _client = new ClientWebSocket(); _client.Options.AddSubProtocol("AHauth"); }