Added LoadBalancer auto reconnect for LRM nodes
This commit is contained in:
parent
35731871f8
commit
b92ce3010b
2 changed files with 14 additions and 1 deletions
|
|
@ -25,6 +25,8 @@ namespace LightReflectiveMirror.Endpoints
|
|||
{
|
||||
private static string _cachedServerList = "[]";
|
||||
private static string _cachedCompressedServerList;
|
||||
public static DateTime lastPing = DateTime.Now;
|
||||
|
||||
private static List<Room> _rooms { get => Program.instance.GetRooms().Where(x => x.isPublic).ToList(); }
|
||||
|
||||
private RelayStats _stats { get => new RelayStats
|
||||
|
|
@ -44,6 +46,7 @@ namespace LightReflectiveMirror.Endpoints
|
|||
[RestRoute("Get", "/api/stats")]
|
||||
public async Task Stats(IHttpContext context)
|
||||
{
|
||||
lastPing = DateTime.Now;
|
||||
string json = JsonConvert.SerializeObject(_stats, Formatting.Indented);
|
||||
await context.Response.SendResponseAsync(json);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -185,6 +185,15 @@ namespace LightReflectiveMirror
|
|||
for(int i = 0; i < _currentConnections.Count; i++)
|
||||
transport.ServerSend(_currentConnections[i], 0, new ArraySegment<byte>(new byte[] { 200 }));
|
||||
|
||||
if (conf.UseLoadBalancer)
|
||||
{
|
||||
if (Endpoint.lastPing.AddSeconds(60) > DateTime.Now)
|
||||
{
|
||||
// Dont await that on main thread. It would cause a lag spike for clients.
|
||||
RegisterSelfToLoadBalancer();
|
||||
}
|
||||
}
|
||||
|
||||
GC.Collect();
|
||||
}
|
||||
|
||||
|
|
@ -194,6 +203,7 @@ namespace LightReflectiveMirror
|
|||
|
||||
private async Task<bool> RegisterSelfToLoadBalancer()
|
||||
{
|
||||
Endpoint.lastPing = DateTime.Now;
|
||||
try
|
||||
{
|
||||
// replace hard coded value for config value later
|
||||
|
|
|
|||
Loading…
Reference in a new issue