NewtonSoft.Json replaced by ln.json
parent
5ce181a5fa
commit
c60c0b4f20
|
@ -6,24 +6,20 @@ using ln.skyscanner.http;
|
|||
using System.IO;
|
||||
using ln.skyscanner.crawl;
|
||||
using ln.types.threads;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
using ln.skyscanner.checks;
|
||||
using ln.skyscanner.import.skytron;
|
||||
using System.Linq;
|
||||
using ln.skyscanner.entities;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using ln.types.net;
|
||||
using ln.application;
|
||||
using ln.application.service;
|
||||
using ln.skyscanner.services;
|
||||
using Renci.SshNet.Messages;
|
||||
using System.Threading;
|
||||
using ln.http.resources;
|
||||
using ln.types.rpc;
|
||||
using ln.json;
|
||||
namespace ln.skyscanner
|
||||
{
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public enum ComponentState { STOPPED, INITIALIZED, STARTED, FAILED, STOPPING }
|
||||
|
||||
public class SkyScanner : Application
|
||||
|
@ -168,9 +164,9 @@ namespace ln.skyscanner
|
|||
|
||||
/* Send Application State to WebSockets */
|
||||
|
||||
JObject msg = new JObject();
|
||||
JObject stateObject = new JObject();
|
||||
stateObject["currentTime"] = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
JSONObject msg = new JSONObject();
|
||||
JSONObject stateObject = new JSONObject();
|
||||
stateObject.Add("currentTime", DateTimeOffset.Now.ToUnixTimeMilliseconds());
|
||||
|
||||
msg["state"] = stateObject;
|
||||
|
||||
|
@ -242,7 +238,7 @@ namespace ln.skyscanner
|
|||
crawl.Prepare();
|
||||
crawl.RunJob();
|
||||
|
||||
Logging.Log(LogLevel.INFO, "CrawledHost: {0}", JObject.FromObject(crawledHost).ToString());
|
||||
Logging.Log(LogLevel.INFO, "CrawledHost: {0}", JSONObject.From(crawledHost).ToString());
|
||||
|
||||
}
|
||||
|
||||
|
@ -257,7 +253,7 @@ namespace ln.skyscanner
|
|||
}
|
||||
else
|
||||
{
|
||||
Logging.Log(LogLevel.INFO, "DebugCheck(): Node: {0}",JObject.FromObject(node).ToString());
|
||||
Logging.Log(LogLevel.INFO, "DebugCheck(): Node: {0}",JSONObject.From(node).ToString());
|
||||
CheckJob checkJob = new CheckJob(node);
|
||||
|
||||
Logging.Log(LogLevel.INFO, "Prepare...");
|
||||
|
|
|
@ -11,7 +11,6 @@ using System;
|
|||
using ln.types.threads;
|
||||
using ln.skyscanner.entities;
|
||||
using ln.logging;
|
||||
using Newtonsoft.Json;
|
||||
using ln.types.odb;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
|
@ -19,9 +18,25 @@ namespace ln.skyscanner.checks
|
|||
{
|
||||
public class CheckJob : PoolJob
|
||||
{
|
||||
[JsonIgnore]
|
||||
public Node Node { get; }
|
||||
|
||||
public SkyCheckState[] CheckStates
|
||||
{
|
||||
get
|
||||
{
|
||||
return checkStates.Values.ToArray();
|
||||
}
|
||||
set
|
||||
{
|
||||
checkStates.Clear();
|
||||
foreach (SkyCheckState checkState in value)
|
||||
{
|
||||
checkStates.Add(checkState.CheckName, checkState);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Dictionary<string, SkyCheckState> checkStates = new Dictionary<string, SkyCheckState>();
|
||||
|
||||
public CheckJob(Node node)
|
||||
|
@ -32,6 +47,7 @@ namespace ln.skyscanner.checks
|
|||
|
||||
public override void Prepare()
|
||||
{
|
||||
/*
|
||||
Query stateQuery = Query.Equals<SkyCheckState>("Node", Node.ID);
|
||||
SkyCheckState[] skyCheckStates = SkyScanner.Instance.Entities.SkyCheckStates.Query(stateQuery).ToArray();
|
||||
foreach (SkyCheckState checkState in skyCheckStates)
|
||||
|
@ -44,6 +60,7 @@ namespace ln.skyscanner.checks
|
|||
checkStates.Add(check.Name, check.PrepareCheckState(SkyScanner.Instance.Checker, Node));
|
||||
SkyScanner.Instance.Entities.SkyCheckStates.Insert(checkStates[check.Name]);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
public override void RunJob()
|
||||
|
|
|
@ -5,6 +5,7 @@ using ln.snmp;
|
|||
using ln.logging;
|
||||
using ln.snmp.types;
|
||||
using System.Drawing;
|
||||
using ln.skyscanner.services;
|
||||
|
||||
namespace ln.skyscanner.checks
|
||||
{
|
||||
|
@ -57,7 +58,7 @@ namespace ln.skyscanner.checks
|
|||
return (node.Vendor != null) && node.Vendor.Equals("mimosa");
|
||||
}
|
||||
|
||||
public override SkyCheckState PrepareCheckState(SkyChecker skyChecker, Node node)
|
||||
public override SkyCheckState PrepareCheckState(CheckService skyChecker, Node node)
|
||||
{
|
||||
return new MimosaCheckState(this, node);
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
// **/
|
||||
using System;
|
||||
using ln.perfdb.storage;
|
||||
using Newtonsoft.Json;
|
||||
namespace ln.skyscanner.checks
|
||||
{
|
||||
public class PerformanceValue
|
||||
|
|
|
@ -11,6 +11,7 @@ using System;
|
|||
using ln.skyscanner.entities;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using ln.skyscanner.services;
|
||||
namespace ln.skyscanner.checks
|
||||
{
|
||||
public abstract class SkyCheck
|
||||
|
@ -33,7 +34,7 @@ namespace ln.skyscanner.checks
|
|||
|
||||
public abstract bool IsValid(Node node);
|
||||
public abstract void Check(SkyChecker skyChecker,ref SkyCheckState checkState,Node node);
|
||||
public virtual SkyCheckState PrepareCheckState(SkyChecker skyChecker,Node node)
|
||||
public virtual SkyCheckState PrepareCheckState(CheckService skyChecker,Node node)
|
||||
{
|
||||
return new SkyCheckState(this, node);
|
||||
}
|
||||
|
|
|
@ -9,15 +9,10 @@
|
|||
// **/
|
||||
using System;
|
||||
using ln.skyscanner.entities;
|
||||
using ln.types.odb;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
using System.Linq;
|
||||
using ln.types.odb.attributes;
|
||||
using System.Collections.Generic;
|
||||
namespace ln.skyscanner.checks
|
||||
{
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public enum CheckState { OK, WARN, CRITICAL, FAIL, ERROR }
|
||||
|
||||
public struct CheckStateChange
|
||||
|
|
|
@ -6,6 +6,7 @@ using System.Collections.Generic;
|
|||
using ln.snmp.types;
|
||||
using ln.logging;
|
||||
using System.Linq;
|
||||
using ln.skyscanner.services;
|
||||
|
||||
namespace ln.skyscanner.checks
|
||||
{
|
||||
|
@ -78,7 +79,7 @@ namespace ln.skyscanner.checks
|
|||
return (node.Vendor != null) && node.Vendor.Equals("Ubiquiti");
|
||||
}
|
||||
|
||||
public override SkyCheckState PrepareCheckState(SkyChecker skyChecker, Node node)
|
||||
public override SkyCheckState PrepareCheckState(CheckService skyChecker, Node node)
|
||||
{
|
||||
return new UbiquityCheckState(this, node);
|
||||
}
|
||||
|
|
|
@ -18,7 +18,6 @@ using ln.snmp.types;
|
|||
using System.Collections.Generic;
|
||||
using ln.snmp.rfc1213;
|
||||
using ln.types;
|
||||
using Newtonsoft.Json;
|
||||
using ln.skyscanner.crawl.tests;
|
||||
using System.Runtime.Remoting.Messaging;
|
||||
using ln.skyscanner.crawl.service;
|
||||
|
@ -27,9 +26,7 @@ namespace ln.skyscanner.crawl
|
|||
{
|
||||
public class Crawl : PoolJob
|
||||
{
|
||||
[JsonIgnore]
|
||||
public Crawler Crawler { get; }
|
||||
[JsonIgnore]
|
||||
public CrawledHost Host { get; }
|
||||
|
||||
List<CrawlService> servicesToCheck = new List<CrawlService>();
|
||||
|
|
|
@ -13,7 +13,6 @@ using ln.types;
|
|||
using ln.skyscanner.entities;
|
||||
using System.Net.NetworkInformation;
|
||||
using ln.logging;
|
||||
using Newtonsoft.Json;
|
||||
using System.Linq;
|
||||
using ln.types.odb;
|
||||
using ln.types.net;
|
||||
|
@ -21,7 +20,6 @@ namespace ln.skyscanner.crawl
|
|||
{
|
||||
public class CrawlNetwork : PoolJob
|
||||
{
|
||||
[JsonIgnoreAttribute]
|
||||
public Crawler Crawler { get; }
|
||||
public CrawledSubnet Subnet { get; }
|
||||
|
||||
|
|
|
@ -13,8 +13,6 @@ using System.IO;
|
|||
using ln.logging;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
using ln.types.odb;
|
||||
using ln.skyscanner.crawl.service;
|
||||
using ln.skyscanner.crawl.tests;
|
||||
|
@ -53,7 +51,6 @@ namespace ln.skyscanner.crawl
|
|||
public bool CrawlSubnets { get; set; }
|
||||
public bool CrawlHosts { get; set; }
|
||||
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public ComponentState CrawlerState { get; private set; }
|
||||
|
||||
public CredentialsGenerator Credentials { get; } = new CredentialsGenerator();
|
||||
|
|
|
@ -8,11 +8,8 @@
|
|||
// *
|
||||
// **/
|
||||
using System;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
namespace ln.skyscanner.entities
|
||||
{
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public enum CheckSeverity
|
||||
{
|
||||
OLD = 0,
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
using System;
|
||||
using ln.types.odb;
|
||||
using ln.types;
|
||||
using Newtonsoft.Json;
|
||||
using ln.types.net;
|
||||
using ln.types.odb.attributes;
|
||||
namespace ln.skyscanner.entities
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
using System;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
namespace ln.skyscanner.entities
|
||||
{
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public enum DeviceType
|
||||
{
|
||||
UNKNOWN,
|
||||
|
|
|
@ -12,7 +12,6 @@ using System.Collections.Generic;
|
|||
using ln.types.odb;
|
||||
using System.Linq;
|
||||
using ln.types.btree;
|
||||
using Newtonsoft.Json;
|
||||
using ln.types.net;
|
||||
namespace ln.skyscanner.entities
|
||||
{
|
||||
|
@ -62,14 +61,11 @@ namespace ln.skyscanner.entities
|
|||
|
||||
public class HopNode : IComparable
|
||||
{
|
||||
[JsonIgnore]
|
||||
public HopMap HopMap { get; }
|
||||
[JsonIgnore]
|
||||
public HopNode Parent { get; private set; }
|
||||
|
||||
public Node Node;
|
||||
|
||||
[JsonIgnore]
|
||||
public HopNode[] Peers => peers.ToArray();
|
||||
private HashSet<HopNode> peers = new HashSet<HopNode>();
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ using System.Collections.Generic;
|
|||
using ln.types;
|
||||
using ln.skyscanner.crawl;
|
||||
using ln.types.odb;
|
||||
using Newtonsoft.Json;
|
||||
using ln.logging;
|
||||
using ln.types.net;
|
||||
using ln.types.odb.attributes;
|
||||
|
|
|
@ -12,7 +12,6 @@ using ln.types;
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using ln.types.odb;
|
||||
using Newtonsoft.Json;
|
||||
using ln.types.threads;
|
||||
using ln.types.net;
|
||||
using ln.types.odb.attributes;
|
||||
|
@ -45,11 +44,8 @@ namespace ln.skyscanner.entities
|
|||
|
||||
public List<NetworkInterface> Interfaces { get; private set; } = new List<NetworkInterface>();
|
||||
|
||||
[JsonIgnore]
|
||||
public IEnumerable<IPv4> IPAdresses => Interfaces.SelectMany(intf => intf.ConfiguredIPs.Select(nip => nip.IP));
|
||||
[JsonIgnore]
|
||||
public IEnumerable<Network4> Networks => Interfaces.SelectMany(intf => intf.ConfiguredIPs.Select(nip => nip.Network)).Distinct();
|
||||
[JsonIgnore]
|
||||
public IEnumerable<Subnet> Subnets => SkyScanner.Instance.Entities.SubnetCollection.Query(Query.Equals<Network4>("Network", Networks.Select(net => net.Network)));
|
||||
|
||||
private string uniqueIdentity;
|
||||
|
|
|
@ -13,7 +13,6 @@ using System.Collections.Generic;
|
|||
using System.Linq;
|
||||
using ln.types;
|
||||
using ln.types.odb.attributes;
|
||||
using Newtonsoft.Json;
|
||||
using ln.types.odb.collections;
|
||||
namespace ln.skyscanner.entities
|
||||
{
|
||||
|
@ -30,7 +29,6 @@ namespace ln.skyscanner.entities
|
|||
public GeoLocation GeoLocation { get; set; }
|
||||
public DateTime Created { get; private set; } = DateTime.Now;
|
||||
|
||||
[JsonIgnore]
|
||||
public IEnumerable<L2Segment> L2Segments
|
||||
{
|
||||
get
|
||||
|
|
|
@ -13,7 +13,6 @@ using ln.types.odb;
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using ln.types.net;
|
||||
using Newtonsoft.Json;
|
||||
using ln.types.odb.attributes;
|
||||
namespace ln.skyscanner.entities
|
||||
{
|
||||
|
@ -32,9 +31,7 @@ namespace ln.skyscanner.entities
|
|||
|
||||
public bool AutoScan { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public IEnumerable<NetworkInterface> AttachedInterfaces => throw new NotImplementedException();
|
||||
[JsonIgnore]
|
||||
public IEnumerable<Node> AttachedNodes => throw new NotImplementedException();
|
||||
|
||||
private Subnet()
|
||||
|
|
|
@ -13,11 +13,11 @@ using ln.http;
|
|||
using ln.http.resources;
|
||||
using ln.types.threads;
|
||||
using ln.perfdb.storage;
|
||||
using Newtonsoft.Json;
|
||||
using System.Net;
|
||||
using ln.skyscanner.checks;
|
||||
using ln.types.odb;
|
||||
using System.Linq;
|
||||
using ln.json.mapping;
|
||||
namespace ln.skyscanner.http
|
||||
{
|
||||
public class CheckerApi : JsonCallResource
|
||||
|
@ -85,7 +85,7 @@ namespace ln.skyscanner.http
|
|||
{
|
||||
HttpResponse response = new HttpResponse(httpRequest);
|
||||
response.SetHeader("content-type", "application/json");
|
||||
response.ContentWriter.Write(JsonConvert.SerializeObject(SkyScanner.Instance.Checker.PerfNames));
|
||||
response.ContentWriter.Write(JSONMapper.DefaultMapper.ToJson(SkyScanner.Instance.Checker.PerfNames));
|
||||
return response;
|
||||
}
|
||||
|
||||
|
@ -119,7 +119,7 @@ namespace ln.skyscanner.http
|
|||
|
||||
HttpResponse response = new HttpResponse(httpRequest);
|
||||
response.SetHeader("content-type", "application/json");
|
||||
response.ContentWriter.Write(JsonConvert.SerializeObject(perfValues));
|
||||
response.ContentWriter.Write(JSONMapper.DefaultMapper.ToJson(perfValues).ToString());
|
||||
|
||||
return response;
|
||||
}
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
using System;
|
||||
using ln.http.resources.websocket;
|
||||
using ln.http.resources;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using ln.logging;
|
||||
using System.Collections.Generic;
|
||||
using ln.http.websocket;
|
||||
using System.Linq;
|
||||
using ln.types.rpc;
|
||||
using Newtonsoft.Json;
|
||||
using ln.json;
|
||||
using ln.json.mapping;
|
||||
|
||||
namespace ln.skyscanner.http
|
||||
{
|
||||
|
@ -49,7 +49,7 @@ namespace ln.skyscanner.http
|
|||
}
|
||||
}
|
||||
|
||||
public void Broadcast(JObject json)
|
||||
public void Broadcast(JSONObject json)
|
||||
{
|
||||
Broadcast(json.ToString());
|
||||
}
|
||||
|
@ -66,13 +66,13 @@ namespace ln.skyscanner.http
|
|||
{
|
||||
try
|
||||
{
|
||||
JObject json = JObject.Parse(textMessage);
|
||||
RPCCall rpcCall = new RPCCall(json);
|
||||
JSONObject json = (JSONObject)JSONParser.Parse(textMessage);
|
||||
RPCCall rpcCall = json.ToObject<RPCCall>();
|
||||
|
||||
RPCResult rpcResult = SkyScannerService.RPCContainer.Invoke(rpcCall);
|
||||
|
||||
requestContext.WebSocket.Send(
|
||||
rpcResult.ToJSON().ToString()
|
||||
JSONObject.From(rpcResult).ToString()
|
||||
);
|
||||
|
||||
}
|
||||
|
|
|
@ -33,16 +33,13 @@
|
|||
<Reference Include="Renci.SshNet">
|
||||
<HintPath>..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="BouncyCastle.Crypto">
|
||||
<HintPath>..\packages\BouncyCastle.1.8.5\lib\BouncyCastle.Crypto.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Google.Protobuf">
|
||||
<HintPath>..\packages\Google.Protobuf.3.8.0\lib\net45\Google.Protobuf.dll</HintPath>
|
||||
<HintPath>..\packages\Google.Protobuf.3.9.1\lib\net45\Google.Protobuf.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MySql.Data">
|
||||
<HintPath>..\packages\MySql.Data.8.0.17\lib\net452\MySql.Data.dll</HintPath>
|
||||
|
@ -299,6 +296,10 @@
|
|||
<Project>{44AA3A50-7214-47F2-9D60-6FF34C0FE6D3}</Project>
|
||||
<Name>ln.application</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ln.json\ln.json.csproj">
|
||||
<Project>{D9342117-3249-4D8B-87C9-51A50676B158}</Project>
|
||||
<Name>ln.json</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
|
@ -1,8 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="BouncyCastle" version="1.8.5" targetFramework="net47" />
|
||||
<package id="Google.Protobuf" version="3.8.0" targetFramework="net47" />
|
||||
<package id="Google.Protobuf" version="3.9.1" targetFramework="net47" />
|
||||
<package id="MySql.Data" version="8.0.17" targetFramework="net47" />
|
||||
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net47" />
|
||||
<package id="SSH.NET" version="2016.1.0" targetFramework="net47" />
|
||||
</packages>
|
|
@ -8,12 +8,14 @@ using ln.skyscanner.checks;
|
|||
using System.Collections.Generic;
|
||||
using ln.types.threads;
|
||||
using System.Linq;
|
||||
using ln.types.odb;
|
||||
namespace ln.skyscanner.services
|
||||
{
|
||||
public class CheckService : ApplicationServiceBase
|
||||
{
|
||||
Pool checkPool;
|
||||
|
||||
EntityService entityService;
|
||||
|
||||
public CheckService()
|
||||
:base("Check Service")
|
||||
|
@ -23,7 +25,7 @@ namespace ln.skyscanner.services
|
|||
|
||||
public override void ServiceMain(IApplicationInterface applicationInterface)
|
||||
{
|
||||
EntityService entityService = Dependency<EntityService>();
|
||||
entityService = Dependency<EntityService>();
|
||||
|
||||
Dictionary<Node, CheckJob> checkJobs = new Dictionary<Node, CheckJob>();
|
||||
HashSet<Node> currentNodes = new HashSet<Node>();
|
||||
|
@ -72,6 +74,10 @@ namespace ln.skyscanner.services
|
|||
}
|
||||
currentNodes.Clear();
|
||||
|
||||
foreach (CheckJob checkJob in checkJobs.Values)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
Logging.Log(LogLevel.INFO, "SkyChecker.scheduler(): prepared {0} checks", checkJobs.Count);
|
||||
Logging.Log(LogLevel.INFO, "SkyChecker.scheduler(): scheduled {0} checks", checkPool.Enqueue(checkJobs.Values));
|
||||
|
@ -93,6 +99,43 @@ namespace ln.skyscanner.services
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
entityService = null;
|
||||
}
|
||||
|
||||
public SkyCheckState[] GetCheckStates(Node node)
|
||||
{
|
||||
Query stateQuery = Query.Equals<SkyCheckState>("Node", node.ID);
|
||||
SkyCheckState[] skyCheckStates = entityService.SkyCheckStates.Query(stateQuery).ToArray();
|
||||
Dictionary<string, SkyCheckState> checkStates = new Dictionary<string, SkyCheckState>();
|
||||
|
||||
foreach (SkyCheckState checkState in skyCheckStates)
|
||||
{
|
||||
checkStates.Add(checkState.CheckName, checkState);
|
||||
}
|
||||
foreach (SkyCheck check in SkyCheck.SkyChecks)
|
||||
{
|
||||
if (!checkStates.ContainsKey(check.Name) && check.IsValid(node))
|
||||
{
|
||||
checkStates.Add(check.Name, check.PrepareCheckState(this, node));
|
||||
entityService.SkyCheckStates.Insert(checkStates[check.Name]);
|
||||
}
|
||||
}
|
||||
|
||||
return checkStates.Values.ToArray();
|
||||
}
|
||||
|
||||
|
||||
class CheckServiceRPC
|
||||
{
|
||||
CheckService checkService;
|
||||
|
||||
public CheckServiceRPC(CheckService checkService)
|
||||
{
|
||||
this.checkService = checkService;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,12 @@ function updateState(state)
|
|||
$("#ServerTime").text("ServerTime: " + moment(state.currentTime).format());
|
||||
|
||||
lagDetector = setTimeout(function(){
|
||||
$("#ServerTime").text("Server lag detected");
|
||||
$("#ServerTime")
|
||||
.empty()
|
||||
.append(
|
||||
$("<span style='color: white; background-color: red;'></span>")
|
||||
.text("Server lag detected")
|
||||
);
|
||||
}, 2000);
|
||||
|
||||
} catch (e)
|
||||
|
|
Loading…
Reference in New Issue