using JiShe.CollectBus.Core.Plugins; using JiShe.CollectBus.Core.Services; using Microsoft.Extensions.Configuration; using TouchSocket.Core; using TouchSocket.Sockets; // ReSharper disable once CheckNamespace namespace Microsoft.Extensions.DependencyInjection { public static class ServiceCollectionExtensions { /// /// 添加TcpService服务。 /// public static IServiceCollection AddTcp(this IServiceCollection services, IConfiguration configuration) { services.AddTcpService(config => { config.SetListenIPHosts(int.Parse(configuration["TCP:Port"] ?? "10500")) .ConfigureContainer(a => //容器的配置顺序应该在最前面 { //a.AddFileLogger(fileLogger => //{ // fileLogger.MaxSize = 1024 * 1024; // fileLogger.LogLevel = LogLevel.Debug; // fileLogger.CreateLogFolder = level => $"logs\\{DateTime.Now:yyyy-MM-dd}\\{level}"; //}); a.AddConsoleLogger(); }) .ConfigurePlugins(a => { a.UseCheckClear() .SetCheckClearType(CheckClearType.All) .SetTick(TimeSpan.FromSeconds(60)) .SetOnClose((c, t) => { c.TryShutdown(); c.SafeClose("超时无数据"); }); a.Add(); a.Add(); a.Add(); }); }); return services; } /// /// 添加UdpService服务。 /// public static IServiceCollection AddUdp(this IServiceCollection services, IConfiguration configuration) { services.AddUdpSession(config => { config.SetBindIPHost(int.Parse(configuration["UDP:Port"] ?? "10500")) .ConfigureContainer(a => //容器的配置顺序应该在最前面 { //a.AddConsoleLogger(); }) .ConfigurePlugins(a => { a.Add(); a.Add(); }) .UseBroadcast() .SetUdpDataHandlingAdapter(() => new NormalUdpDataHandlingAdapter()); }); return services; } } }