From 22c37456e96269bc66ebe3a62a249df53a6168d2 Mon Sep 17 00:00:00 2001 From: Philip Schell Date: Wed, 17 Jul 2019 15:55:01 +0200 Subject: [PATCH] Move querys together --- Lora-Map/Server.cs | 38 +++++++++++-------- Lora-Map/resources/js/functions.js | 60 +++++++++++++++++++++++++++--- Lora-Map/resources/js/map.js | 20 ---------- Lora-Map/resources/js/marker.js | 21 ----------- Lora-Map/resources/js/overlays.js | 21 ----------- 5 files changed, 76 insertions(+), 84 deletions(-) diff --git a/Lora-Map/Server.cs b/Lora-Map/Server.cs index a24cef5..056c126 100644 --- a/Lora-Map/Server.cs +++ b/Lora-Map/Server.cs @@ -106,13 +106,25 @@ namespace Fraunhofer.Fit.IoT.LoraMap { protected override Boolean SendWebserverResponse(HttpListenerContext cont) { try { - if(cont.Request.Url.PathAndQuery.StartsWith("/loc")) { - return SendJsonResponse(this.positions, cont); - } else if(cont.Request.Url.PathAndQuery.StartsWith("/panic")) { - return SendJsonResponse(this.alarms, cont); - } else if(cont.Request.Url.PathAndQuery.StartsWith("/icons/marker/Marker.svg") && cont.Request.Url.PathAndQuery.Contains("?")) { + if (cont.Request.Url.PathAndQuery.StartsWith("/get1000")) { + return SendJsonResponse(new Dictionary() { + { "loc", this.positions }, + { "panic", this.alarms }, + { "cameracount", this.cameras }, + { "crowdcount", this.crowds } + }, cont); + } else if (cont.Request.Url.PathAndQuery.StartsWith("/get60000")) { + return SendJsonResponse(new Dictionary() { + { "currenttime", new Dictionary() { { "utc", DateTime.UtcNow } } } + }, cont); + } else if (cont.Request.Url.PathAndQuery.StartsWith("/getonce")) { + return SendJsonResponse(new Dictionary() { + { "getlayer", this.FindMapLayer(cont.Request) }, + { "getgeo", JsonMapper.ToObject(File.ReadAllText("json/geo.json")) } + }, cont); + } else if (cont.Request.Url.PathAndQuery.StartsWith("/icons/marker/Marker.svg") && cont.Request.Url.PathAndQuery.Contains("?")) { String hash = cont.Request.Url.PathAndQuery.Substring(cont.Request.Url.PathAndQuery.IndexOf('?') + 1); - if(!this.markertable.ContainsKey(hash)) { + if (!this.markertable.ContainsKey(hash)) { this.markertable.Add(hash, new Marker(hash)); } cont.Response.ContentType = "image/svg+xml"; @@ -121,24 +133,18 @@ namespace Fraunhofer.Fit.IoT.LoraMap { cont.Response.OutputStream.Write(buf, 0, buf.Length); Console.WriteLine("200 - " + cont.Request.Url.PathAndQuery); return true; - } else if(cont.Request.Url.PathAndQuery.StartsWith("/currenttime")) { - return SendJsonResponse(new Dictionary() { { "utc", DateTime.UtcNow } }, cont); - } else if(cont.Request.Url.PathAndQuery.StartsWith("/admin")) { + } else if (cont.Request.Url.PathAndQuery.StartsWith("/admin")) { return this.admin.ParseReuqest(cont); - } else if(cont.Request.Url.PathAndQuery.StartsWith("/getlayer")) { + } else if (cont.Request.Url.PathAndQuery.StartsWith("/getlayer")) { return SendJsonResponse(this.FindMapLayer(cont.Request), cont); - } else if(cont.Request.Url.PathAndQuery.StartsWith("/maps/")) { + } else if (cont.Request.Url.PathAndQuery.StartsWith("/maps/")) { return SendFileResponse(cont, "resources", false); - } else if(cont.Request.Url.PathAndQuery.StartsWith("/getgeo")) { + } else if (cont.Request.Url.PathAndQuery.StartsWith("/getgeo")) { Byte[] buf = Encoding.UTF8.GetBytes(File.ReadAllText("json/geo.json")); cont.Response.ContentLength64 = buf.Length; cont.Response.OutputStream.Write(buf, 0, buf.Length); Console.WriteLine("200 - " + cont.Request.Url.PathAndQuery); return true; - } else if(cont.Request.Url.PathAndQuery.StartsWith("/cameracount")) { - return SendJsonResponse(this.cameras, cont); - } else if (cont.Request.Url.PathAndQuery.StartsWith("/crowdcount")) { - return SendJsonResponse(this.crowds, cont); } } catch(Exception e) { Helper.WriteError("SendWebserverResponse(): 500 - " + e.Message + "\n\n" + e.StackTrace); diff --git a/Lora-Map/resources/js/functions.js b/Lora-Map/resources/js/functions.js index e5eefd1..42d6d9c 100644 --- a/Lora-Map/resources/js/functions.js +++ b/Lora-Map/resources/js/functions.js @@ -2,18 +2,66 @@ _internalTimeOffset: 0, Start: function () { setInterval(this._Runner60000, 60000); + setInterval(this._Runner1000, 1000); this._Runner60000(); + this._Runner1000(); + this._RunnerOnce(); return this; }, _Runner60000: function () { - var timecorrection = new XMLHttpRequest(); - timecorrection.onreadystatechange = function () { - if (timecorrection.readyState === 4 && timecorrection.status === 200) { - FunctionsObject._ParseAJAX(JSON.parse(timecorrection.responseText)); + var get60000 = new XMLHttpRequest(); + get60000.onreadystatechange = function () { + if (get60000.readyState === 4 && get60000.status === 200) { + var json = JSON.parse(get60000.responseText); + FunctionsObject._ParseAJAX(json["currenttime"]); } }; - timecorrection.open("GET", "/currenttime", true); - timecorrection.send(); + get60000.open("GET", "/get60000", true); + get60000.send(); + }, + _Runner1000: function () { + var get1000 = new XMLHttpRequest(); + get1000.onreadystatechange = function () { + if (get1000.readyState === 4 && get1000.status === 200) { + var json = JSON.parse(get1000.responseText); + MarkerObject._ParseAJAXLoc(json["loc"]); + MarkerObject._ParseAJAXPanic(json["panic"]); + OverlayObject._ParseAJAXCount(json["cameracount"]); + OverlayObject._ParseAJAXDensity(json["crowdcount"]); + } + }; + get1000.open("GET", "/get1000", true); + get1000.send(); + }, + _RunnerOnce: function () { + /*var getonce = new XMLHttpRequest(); + getonce.onreadystatechange = function () { + if (getonce.readyState === 4 && getonce.status === 200) { + var json = JSON.parse(getonce.responseText); + MapObject._ParseAJAXLayers(json["getlayer"]); + MapObject._ParseAJAXGeo(json["getgeo"]); + } + }; + getonce.open("GET", "/getonce", true); + getonce.send();*/ + + var layergetter = new XMLHttpRequest(); + layergetter.onreadystatechange = function () { + if (layergetter.readyState === 4 && layergetter.status === 200) { + MapObject._ParseAJAXLayers(JSON.parse(layergetter.responseText)); + } + }; + layergetter.open("GET", "/getlayer", true); + layergetter.send(); + + var geogetter = new XMLHttpRequest(); + geogetter.onreadystatechange = function () { + if (geogetter.readyState === 4 && geogetter.status === 200) { + MapObject._ParseAJAXGeo(JSON.parse(geogetter.responseText)); + } + }; + geogetter.open("GET", "/getgeo", true); + geogetter.send(); }, _ParseAJAX: function (utcobject) { if (utcobject.hasOwnProperty("utc")) { diff --git a/Lora-Map/resources/js/map.js b/Lora-Map/resources/js/map.js index 4f73a1f..6b4ea38 100644 --- a/Lora-Map/resources/js/map.js +++ b/Lora-Map/resources/js/map.js @@ -3,30 +3,10 @@ _SpecialMarkers: new Array(), Start: function () { this.Map = L.map('bigmap').setView(["{%START_LOCATION%}"], 16); - this._RunnerOnce(); this._SetupMapZoomFontsize(); this._SetupClickHandler(); return this; }, - _RunnerOnce: function () { - var layergetter = new XMLHttpRequest(); - layergetter.onreadystatechange = function () { - if (layergetter.readyState === 4 && layergetter.status === 200) { - MapObject._ParseAJAXLayers(JSON.parse(layergetter.responseText)); - } - }; - layergetter.open("GET", "/getlayer", true); - layergetter.send(); - - var geogetter = new XMLHttpRequest(); - geogetter.onreadystatechange = function () { - if (geogetter.readyState === 4 && geogetter.status === 200) { - MapObject._ParseAJAXGeo(JSON.parse(geogetter.responseText)); - } - }; - geogetter.open("GET", "/getgeo", true); - geogetter.send(); - }, _ParseAJAXLayers: function (maps) { var i = 0; for (var key in maps) { diff --git a/Lora-Map/resources/js/marker.js b/Lora-Map/resources/js/marker.js index cd2614f..d18311f 100644 --- a/Lora-Map/resources/js/marker.js +++ b/Lora-Map/resources/js/marker.js @@ -3,29 +3,8 @@ PanicData: {}, LocationData: {}, Start: function () { - setInterval(this._Runner1000, 1000); - this._Runner1000(); return this; }, - _Runner1000: function () { - var loc = new XMLHttpRequest(); - loc.onreadystatechange = function () { - if (loc.readyState === 4 && loc.status === 200) { - MarkerObject._ParseAJAXLoc(JSON.parse(loc.responseText)); - } - }; - loc.open("GET", "/loc", true); - loc.send(); - - var panic = new XMLHttpRequest(); - panic.onreadystatechange = function () { - if (panic.readyState === 4 && panic.status === 200) { - MarkerObject._ParseAJAXPanic(JSON.parse(panic.responseText)); - } - }; - panic.open("GET", "/panic", true); - panic.send(); - }, _ParseAJAXLoc: function (serverLocation) { this.LocationData = serverLocation; for (var key in this.LocationData) { diff --git a/Lora-Map/resources/js/overlays.js b/Lora-Map/resources/js/overlays.js index de23c51..f3eceae 100644 --- a/Lora-Map/resources/js/overlays.js +++ b/Lora-Map/resources/js/overlays.js @@ -1,28 +1,7 @@ var OverlayObject = { Start: function () { - setInterval(this._Runner1000, 1000); - this._Runner1000(); return this; }, - _Runner1000: function () { - var ccount = new XMLHttpRequest(); - ccount.onreadystatechange = function () { - if (ccount.readyState === 4 && ccount.status === 200) { - OverlayObject._ParseAJAXCount(JSON.parse(ccount.responseText)); - } - }; - ccount.open("GET", "/cameracount", true); - ccount.send(); - - var cdensity = new XMLHttpRequest(); - cdensity.onreadystatechange = function () { - if (cdensity.readyState === 4 && cdensity.status === 200) { - OverlayObject._ParseAJAXDensity(JSON.parse(cdensity.responseText)); - } - }; - cdensity.open("GET", "/crowdcount", true); - cdensity.send(); - }, _ParseAJAXCount: function (cameracounts) { var camerastext = ""; for (var cameraid in cameracounts) {