1
0
mirror of https://github.com/KubaPro010/fm-dx-webserver.git synced 2026-02-26 14:11:59 +01:00

Merge pull request #181 from AmateurAudioDude/v1.3.11-tcp-latency-check

TCP for server region latency check
This commit is contained in:
Marek Farkaš
2025-12-02 10:43:49 +01:00
committed by GitHub

View File

@@ -240,19 +240,27 @@ function checkIPv6Support(callback) {
});
}
function checkLatency(host) {
function checkLatency(host, port = 80, timeout = 2000) {
return new Promise(resolve => {
const start = Date.now();
const req = http.get({ host, timeout: 2000 }, res => {
res.resume(); // discard body
resolve(Date.now() - start);
const socket = net.connect({ host, port });
socket.setTimeout(timeout);
socket.on("connect", () => {
const latency = Date.now() - start;
socket.destroy();
resolve(latency); // ms
});
req.on("error", () => resolve(null)); // server offline
req.on("timeout", () => {
req.destroy();
resolve(null);
socket.on("timeout", () => {
socket.destroy();
resolve(null); // timed out
});
socket.on("error", () => {
resolve(null); // offline
});
});
}