using System; using System.Net; namespace ET.Server { [Event(SceneType.Main)] public class EntryEvent2_InitServer: AEvent { protected override async ETTask Run(Scene root, EntryEvent2 args) { int sceneType = SceneTypeSingleton.Instance.GetSceneType(Options.Instance.SceneName); switch (sceneType) { case SceneType.Server: { int process = root.Fiber.Process; StartProcessConfig startProcessConfig = StartProcessConfigCategory.Instance.Get(process); if (startProcessConfig.Port != 0) { await FiberManager.Instance.Create(SchedulerType.ThreadPool, ConstFiberId.NetInner, 0, SceneType.NetInner, "NetInner"); } // 根据配置创建纤程 var processScenes = StartSceneConfigCategory.Instance.GetByProcess(process); foreach (StartSceneConfig startConfig in processScenes) { await FiberManager.Instance.Create(SchedulerType.ThreadPool, startConfig.Id, startConfig.Zone, startConfig.Type, startConfig.Name); } break; } case SceneType.Watcher: { root.AddComponent(); break; } case SceneType.GameTool: { break; } } if (Options.Instance.Console == 1) { root.AddComponent(); } } } }