From 4957e2e0003fd96163d5ad854210a0c35e967987 Mon Sep 17 00:00:00 2001 From: Amateur Audio Dude <168192910+AmateurAudioDude@users.noreply.github.com> Date: Tue, 2 Dec 2025 19:45:02 +1100 Subject: [PATCH] TCP for server region latency check --- server/helpers.js | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/server/helpers.js b/server/helpers.js index 2c8dd8c..ce3758c 100644 --- a/server/helpers.js +++ b/server/helpers.js @@ -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 }); }); }