Fixed Load Balancer MasterList
This commit is contained in:
parent
43f1b84c2f
commit
1af452928e
6 changed files with 24 additions and 8 deletions
|
|
@ -48,13 +48,10 @@ namespace LightReflectiveMirror.LoadBalancing
|
|||
public string serverName;
|
||||
public string serverData;
|
||||
public bool isPublic;
|
||||
public int currentPlayers { get => clients.Count + 1; }
|
||||
public int maxPlayers;
|
||||
|
||||
[JsonIgnore]
|
||||
public List<int> clients;
|
||||
|
||||
public RelayAddress relayInfo;
|
||||
public int currentPlayers;
|
||||
}
|
||||
|
||||
public enum LRMRegions { Any, NorthAmerica, SouthAmerica, Europe, Asia, Africa, Oceania }
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@ namespace LightReflectiveMirror.LoadBalancing
|
|||
Logger.ForceLogMessage("Conflicting Rooms! (That's ok)", ConsoleColor.Yellow);
|
||||
}
|
||||
|
||||
Logger.WriteLogMessage($"Try Calling CacheAllServers", ConsoleColor.Cyan);
|
||||
CacheAllServers();
|
||||
await context.Response.SendResponseAsync(HttpStatusCode.Ok);
|
||||
}
|
||||
|
|
@ -168,12 +169,18 @@ namespace LightReflectiveMirror.LoadBalancing
|
|||
{
|
||||
string region = context.Request.Headers["x-Region"];
|
||||
|
||||
if (int.TryParse(region, out int regionID))
|
||||
|
||||
if (int.TryParse("Info:" + region, out int regionID))
|
||||
{
|
||||
Logger.WriteLogMessage("Send Servers, " + _regionRooms[(LRMRegions)regionID].Count, ConsoleColor.Cyan);
|
||||
Logger.WriteLogMessage("Send Servers(Cached), " + _cachedRegionRooms[(LRMRegions)regionID], ConsoleColor.Cyan);
|
||||
await context.Response.SendResponseAsync(_cachedRegionRooms[(LRMRegions)regionID]);
|
||||
return;
|
||||
}
|
||||
|
||||
Logger.WriteLogMessage("Send Servers, "+_regionRooms[LRMRegions.Any].Count,ConsoleColor.Cyan);
|
||||
Logger.WriteLogMessage("Send Servers(Cached), " + _cachedRegionRooms[LRMRegions.Any], ConsoleColor.Cyan);
|
||||
|
||||
// They didnt submit a region header, just give them all servers as they probably are viewing in browser.
|
||||
await context.Response.SendResponseAsync(_cachedRegionRooms[LRMRegions.Any]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
using Newtonsoft.Json;
|
||||
using LightReflectiveMirror.Debug;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
|
|
@ -9,8 +11,16 @@ namespace LightReflectiveMirror.LoadBalancing
|
|||
{
|
||||
static void CacheAllServers()
|
||||
{
|
||||
Logger.WriteLogMessage($"CacheAllServers[{_regionRooms.Count}]", ConsoleColor.Cyan);
|
||||
|
||||
foreach (var region in _regionRooms)
|
||||
_cachedRegionRooms[region.Key] = JsonConvert.SerializeObject(region.Value);
|
||||
{
|
||||
Logger.WriteLogMessage($"CacheAllServers[{region.Key}][{region.Value.Count}]", ConsoleColor.Cyan);
|
||||
|
||||
_cachedRegionRooms[region.Key] = JsonConvert.SerializeObject(region.Value,Formatting.Indented);
|
||||
|
||||
Logger.WriteLogMessage($"CacheAllServers[{region.Key}][{region.Value.Count}] {_cachedRegionRooms[region.Key]}", ConsoleColor.Cyan);
|
||||
}
|
||||
}
|
||||
|
||||
static void ClearAllServersLists()
|
||||
|
|
|
|||
|
|
@ -159,6 +159,7 @@ namespace LightReflectiveMirror.LoadBalancing
|
|||
/// <returns></returns>
|
||||
public async Task<List<Room>> RequestServerListFromNode(string serverIP, ushort port)
|
||||
{
|
||||
Logger.ForceLogMessage($"Request Server List from Node: {serverIP}:{port}", ConsoleColor.Yellow);
|
||||
using (WebClient wc = new WebClient())
|
||||
{
|
||||
try
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ namespace LightReflectiveMirror
|
|||
supportsDirectConnect = hostIP != null && useDirectConnect,
|
||||
port = port,
|
||||
useNATPunch = useNatPunch,
|
||||
relayInfo = new RelayAddress { address = Program.publicIP, port = Program.conf.TransportPort, endpointPort = Program.conf.EndpointPort }
|
||||
relayInfo = new RelayAddress { address = Program.publicIP, port = Program.conf.TransportPort, endpointPort = Program.conf.EndpointPort, serverRegion = Program.conf.LoadBalancerRegion }
|
||||
};
|
||||
|
||||
rooms.Add(room);
|
||||
|
|
|
|||
|
|
@ -39,5 +39,6 @@ namespace LightReflectiveMirror
|
|||
public ushort port;
|
||||
public ushort endpointPort;
|
||||
public string address;
|
||||
public LRMRegions serverRegion;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue