diff --git a/src/PSLauncher.App/App.xaml.cs b/src/PSLauncher.App/App.xaml.cs index 7a0f1eb..43c1093 100644 --- a/src/PSLauncher.App/App.xaml.cs +++ b/src/PSLauncher.App/App.xaml.cs @@ -108,13 +108,25 @@ public partial class App : Application services.AddSingleton(sp => { - var http = new HttpClient(new SocketsHttpHandler + // Handler tuné pour les gros téléchargements parallèles : + // - MaxConnectionsPerServer=16 pour autoriser le multi-segment (8 par défaut). + // - AutomaticDecompression sur l'API JSON uniquement (None ici car les builds + // sont des ZIPs déjà compressés ; éviter la CPU+RAM gaspillée par un éventuel + // wrapping gzip côté serveur). + // - PooledConnectionLifetime court pour éviter qu'OVH ferme nos sockets sous nous. + var handler = new SocketsHttpHandler { PooledConnectionLifetime = TimeSpan.FromMinutes(5), - AutomaticDecompression = System.Net.DecompressionMethods.All - }) + PooledConnectionIdleTimeout = TimeSpan.FromSeconds(60), + MaxConnectionsPerServer = 16, + EnableMultipleHttp2Connections = true, + AutomaticDecompression = System.Net.DecompressionMethods.None, + }; + var http = new HttpClient(handler) { - Timeout = Timeout.InfiniteTimeSpan + Timeout = Timeout.InfiniteTimeSpan, + DefaultRequestVersion = System.Net.HttpVersion.Version20, + DefaultVersionPolicy = HttpVersionPolicy.RequestVersionOrLower, }; http.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("PSLauncher", "0.5")); return http; diff --git a/src/PSLauncher.App/Resources/Theme.xaml b/src/PSLauncher.App/Resources/Theme.xaml index 260f084..dde54d5 100644 --- a/src/PSLauncher.App/Resources/Theme.xaml +++ b/src/PSLauncher.App/Resources/Theme.xaml @@ -135,6 +135,39 @@ + + +