HttpGetRouterHandler.cs 1.1 KB

123456789101112131415161718192021222324252627
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Net;
  4. using System.Text;
  5. namespace ET.Server
  6. {
  7. [HttpHandler(SceneType.RouterManager, "/get_router")]
  8. public class HttpGetRouterHandler : IHttpHandler
  9. {
  10. public async ETTask Handle(Scene scene, HttpListenerContext context)
  11. {
  12. HttpGetRouterResponse response = HttpGetRouterResponse.Create();
  13. foreach (StartSceneConfig startSceneConfig in StartSceneConfigCategory.Instance.Realms)
  14. {
  15. // 这里是要用InnerIP,因为云服务器上realm绑定不了OuterIP的,所以realm的内网外网的socket都是监听内网地址
  16. response.Realms.Add(startSceneConfig.InnerIPPort.ToString());
  17. }
  18. foreach (StartSceneConfig startSceneConfig in RouterConfigSingleton.Instance.GetRouters())
  19. {
  20. response.Routers.Add($"{startSceneConfig.StartProcessConfig.OuterIP}:{startSceneConfig.Port}");
  21. }
  22. HttpHelper.Response(context, response);
  23. await ETTask.CompletedTask;
  24. }
  25. }
  26. }