EntryEvent2_InitServer.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using System.Net;
  3. namespace ET.Server
  4. {
  5. [Event(SceneType.Main)]
  6. public class EntryEvent2_InitServer: AEvent<Scene, EntryEvent2>
  7. {
  8. protected override async ETTask Run(Scene root, EntryEvent2 args)
  9. {
  10. switch (Options.Instance.AppType)
  11. {
  12. case AppType.Server:
  13. {
  14. int process = root.Fiber.Process;
  15. StartProcessConfig startProcessConfig = StartProcessConfigCategory.Instance.Get(process);
  16. if (startProcessConfig.Port != 0)
  17. {
  18. await FiberManager.Instance.Create(SchedulerType.ThreadPool, ConstFiberId.NetInner, 0, SceneType.NetInner, "NetInner");
  19. }
  20. // 根据配置创建纤程
  21. var processScenes = StartSceneConfigCategory.Instance.GetByProcess(process);
  22. foreach (StartSceneConfig startConfig in processScenes)
  23. {
  24. await FiberManager.Instance.Create(SchedulerType.ThreadPool, startConfig.Id, startConfig.Zone, startConfig.Type, startConfig.Name);
  25. }
  26. break;
  27. }
  28. case AppType.Watcher:
  29. {
  30. root.AddComponent<WatcherComponent>();
  31. break;
  32. }
  33. case AppType.GameTool:
  34. {
  35. break;
  36. }
  37. }
  38. if (Options.Instance.Console == 1)
  39. {
  40. root.AddComponent<ConsoleComponent>();
  41. }
  42. }
  43. }
  44. }