Optimisation des requetes vers gametracker (un fichier de config est désormais nécessaire)

This commit is contained in:
2020-11-25 21:49:25 +01:00
parent 038816ce50
commit 36a2e1e071
3 changed files with 82 additions and 3 deletions

55
config.js Normal file
View File

@@ -0,0 +1,55 @@
export default {
gametrackerShedule: 3600, // Request gametracker every hours
servers: [
// cstrike:only_de_dust2
{
ip: '87.98.155.38',
port: 27016,
},
// cstrike:zm_full_ammo
{
ip: '87.98.152.38',
port: 27015,
},
// cstrike:free_for_all
{
ip: '87.98.181.40',
port: 27015,
},
// cstrike:gungame
{
ip: '87.98.155.38',
port: 27017,
},
// cstrike:surf
{
ip: '188.165.178.187',
port: 27015,
},
// cstrike:ze
{
ip: '188.165.178.180',
port: 27016,
},
// csgo:bhop_t1_to_t2
{
ip: '188.165.178.160',
port: 27015,
},
// csgo:bhop_t3_to_t5
{
ip: '188.165.178.162',
port: 27015,
},
// csgo:only_de_dust2
{
ip: '188.165.178.187',
port: 27035,
},
// csgo:zm_source
{
ip: '188.165.178.187',
port: 27030,
},
],
};

View File

@@ -14,7 +14,7 @@ export default {
};
},
setMetrics(response) {
const rank = response.rank || 0;
const rank = response ? response.rank : 0;
metrics.gametrackerRank.set((Number(rank)));
},
};

View File

@@ -4,6 +4,31 @@ import sourcepython from './sourcepython.js';
import registry from './registry.js';
import game from './game.js';
import gametracker from './gametracker.js';
import conf from '../config.js';
const gameTrackerResponse = [];
function requestGameTrackerSchedule() {
setTimeout(() => {
conf.servers.forEach((server) => {
requestGameTracker(server.ip, server.port);
});
requestGameTrackerSchedule();
}, conf.gametrackerShedule * 1000);
}
async function requestGameTracker(ip, port) {
try {
gameTrackerResponse[`${ip}:${port}`] = await gametracker.request(ip, port);
} catch (e) {
console.log(e);
}
}
requestGameTrackerSchedule();
conf.servers.forEach((server) => {
requestGameTracker(server.ip, server.port);
});
export default {
async request(config, client) {
@@ -14,7 +39,6 @@ export default {
const infoResponse = await game.requeseInfo(client, config.game);
const statsResponse = await game.requestStats(client, config.game);
const statusResponse = await game.requestStatus(client, config.game);
const gameTrackerResponse = await gametracker.request(config.ip, config.port);
if (config.metamod) {
metamodResponse = await metamod.request(client);
}
@@ -31,7 +55,7 @@ export default {
metamod: metamodResponse,
sourcemod: sourcemodResponse,
sourcepython: sourcepythonResponse,
gametracker: gameTrackerResponse,
gametracker: gameTrackerResponse[`${config.ip}:${config.port}`],
};
},