mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
Updated uri handling on server
This commit is contained in:
@@ -99,17 +99,29 @@ function setup() {
|
||||
getUnits((data: UnitsData) => getUnitsManager()?.update(data), true /* Does a full refresh */);
|
||||
|
||||
/* Start periodically requesting updates */
|
||||
requestUpdate(true /* Start looping */);
|
||||
startPeriodicUpdate();
|
||||
}
|
||||
|
||||
function requestUpdate(loop: boolean) {
|
||||
function startPeriodicUpdate()
|
||||
{
|
||||
requestUpdate();
|
||||
requestRefresh();
|
||||
}
|
||||
|
||||
function requestUpdate() {
|
||||
/* Main update rate = 250ms is minimum time, equal to server update time. */
|
||||
getUnits((data: UnitsData) => getUnitsManager()?.update(data))
|
||||
setTimeout(() => requestUpdate(loop), getConnected() ? 250 : 1000);
|
||||
getUnits((data: UnitsData) => getUnitsManager()?.update(data), false);
|
||||
setTimeout(() => requestUpdate(), getConnected() ? 250 : 1000);
|
||||
|
||||
getConnectionStatusPanel()?.update(getConnected());
|
||||
}
|
||||
|
||||
function requestRefresh() {
|
||||
/* Main refresh rate = 5000ms. */
|
||||
getUnits((data: UnitsData) => getUnitsManager()?.update(data), true);
|
||||
setTimeout(() => requestUpdate(), 5000);
|
||||
}
|
||||
|
||||
export function getMap() {
|
||||
return map;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import * as L from 'leaflet'
|
||||
import { setConnected } from '..';
|
||||
|
||||
const DEMO = true;
|
||||
const DEMO = false;
|
||||
|
||||
/* Edit here to change server address */
|
||||
const REST_ADDRESS = "http://localhost:30000/olympus";
|
||||
@@ -18,9 +18,11 @@ export function GET(callback: CallableFunction, uri: string){
|
||||
xmlHttp.onload = function (e) {
|
||||
var data = JSON.parse(xmlHttp.responseText);
|
||||
callback(data);
|
||||
setConnected(true);
|
||||
};
|
||||
xmlHttp.onerror = function () {
|
||||
console.error("An error occurred during the XMLHttpRequest");
|
||||
setConnected(false);
|
||||
};
|
||||
xmlHttp.send(null);
|
||||
}
|
||||
@@ -29,7 +31,9 @@ export function POST(request: object, callback: CallableFunction){
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("PUT", REST_ADDRESS);
|
||||
xhr.setRequestHeader("Content-Type", "application/json");
|
||||
xhr.onreadystatechange = () => { callback(); };
|
||||
xhr.onreadystatechange = () => {
|
||||
callback();
|
||||
};
|
||||
xhr.send(JSON.stringify(request));
|
||||
}
|
||||
|
||||
@@ -47,7 +51,7 @@ export function getLogs(callback: CallableFunction) {
|
||||
|
||||
export function getUnits(callback: CallableFunction, refresh: boolean = false) {
|
||||
if (!DEMO)
|
||||
GET(callback, `${UNITS_URI}/${refresh? REFRESH_URI: UPDATE_URI}}`);
|
||||
GET(callback, `${UNITS_URI}/${refresh? REFRESH_URI: UPDATE_URI}`);
|
||||
else
|
||||
callback(refresh? generateRandomUnitsDemoData(100): {units:{}});
|
||||
}
|
||||
|
||||
@@ -49,14 +49,14 @@ export class UnitsManager {
|
||||
.reduce((timeout: number, ID: string) => {
|
||||
setTimeout(() => {
|
||||
this.addUnit(parseInt(ID), data.units[ID]);
|
||||
this.#units[parseInt(ID)].setData(data.units[ID]);
|
||||
this.#units[parseInt(ID)]?.setData(data.units[ID]);
|
||||
}, timeout);
|
||||
return timeout + 10;
|
||||
}, 10);
|
||||
|
||||
Object.keys(data.units)
|
||||
.filter((ID: string) => ID in this.#units)
|
||||
.forEach((ID: string) => this.#units[parseInt(ID)].setData(data.units[ID]));
|
||||
.forEach((ID: string) => this.#units[parseInt(ID)]?.setData(data.units[ID]));
|
||||
}
|
||||
|
||||
forceUpdate() {
|
||||
|
||||
Reference in New Issue
Block a user