using cmonitor.config; using cmonitor.server.ruleConfig; using cmonitor.startup; using common.libs; using Microsoft.Extensions.DependencyInjection; using System.Reflection; namespace cmonitor.server { public sealed class ServerStartup : IStartup { public StartupLevel Level => StartupLevel.Normal; public void AddClient(ServiceCollection serviceCollection, Config config, Assembly[] assemblies) { serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); } public void AddServer(ServiceCollection serviceCollection, Config config, Assembly[] assemblies) { serviceCollection.AddSingleton(); // if (OperatingSystem.IsWindows()) serviceCollection.AddSingleton(); // else if (OperatingSystem.IsLinux()) serviceCollection.AddSingleton(); // else if (OperatingSystem.IsMacOS()) serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); } private bool loaded = false; public void UseClient(ServiceProvider serviceProvider, Config config, Assembly[] assemblies) { if (loaded == false) { MessengerResolver messengerResolver = serviceProvider.GetService(); messengerResolver.LoadMessenger(assemblies, config.Data.Common.PluginContains); loaded = true; } } public void UseServer(ServiceProvider serviceProvider, Config config, Assembly[] assemblies) { if (loaded == false) { MessengerResolver messengerResolver = serviceProvider.GetService(); messengerResolver.LoadMessenger(assemblies, config.Data.Common.PluginContains); loaded = true; } Logger.Instance.Info($"start server"); //服务 TcpServer tcpServer = serviceProvider.GetService(); tcpServer.Start(); Logger.Instance.Info($"server listen:{config.Data.Server.ServicePort}"); } } }