1
0
mirror of https://github.com/KubaPro010/fm-dx-webserver.git synced 2026-02-27 06:23:53 +01:00

TCP for server region latency check

This commit is contained in:
Amateur Audio Dude
2025-12-02 19:45:02 +11:00
committed by GitHub
parent 14f7adab72
commit 4957e2e000

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
});
});
}