From f051b73e9d2af71db9827642bd829424979d4e17 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Wed, 26 Mar 2025 15:32:03 +0000 Subject: [PATCH] move measurePing as a util --- src/helpers/measurePing.js | 62 ------------------------------------- src/utils/measurePing.js | 63 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 62 deletions(-) delete mode 100755 src/helpers/measurePing.js create mode 100755 src/utils/measurePing.js diff --git a/src/helpers/measurePing.js b/src/helpers/measurePing.js deleted file mode 100755 index ed6dce8..0000000 --- a/src/helpers/measurePing.js +++ /dev/null @@ -1,62 +0,0 @@ -import request from "../request" - -const fetchers = { - http: () => new Promise(async (resolve) => { - const start = Date.now() - - const failTimeout = setTimeout(() => { - resolve("timeout") - }, 5000) - - request({ - method: "GET", - url: "/ping", - }) - .then(() => { - clearTimeout(failTimeout) - resolve(Date.now() - start) - }) - .catch((err) => { - console.log(err) - clearTimeout(failTimeout) - resolve("failed") - }) - }), - ws: () => new Promise((resolve) => { - const start = Date.now() - - const failTimeout = setTimeout(() => { - resolve("failed") - }, 5000) - - globalThis.__comty_shared_state.sockets["main"].on("pong", () => { - failTimeout && clearTimeout(failTimeout) - - resolve(Date.now() - start) - }) - - globalThis.__comty_shared_state.sockets["main"].emit("ping") - }) -} - -export default async ({ select } = {}) => { - let selectedPromises = [] - - if (Array.isArray(select)) { - select.forEach((item) => { - if (!fetchers[item]) { - return - } - selectedPromises.push(fetchers[item]()) - }) - } else { - selectedPromises = [ - fetchers["http"](), - fetchers["ws"](), - ] - } - - const result = await Promise.all(selectedPromises) - - return result -} \ No newline at end of file diff --git a/src/utils/measurePing.js b/src/utils/measurePing.js new file mode 100755 index 0000000..90ec5e2 --- /dev/null +++ b/src/utils/measurePing.js @@ -0,0 +1,63 @@ +import request from "../request" + +const fetchers = { + http: () => + new Promise(async (resolve) => { + const start = Date.now() + + const failTimeout = setTimeout(() => { + resolve("timeout") + }, 5000) + + request({ + method: "GET", + url: "/ping", + }) + .then(() => { + clearTimeout(failTimeout) + resolve(Date.now() - start) + }) + .catch((err) => { + console.log(err) + clearTimeout(failTimeout) + resolve("failed") + }) + }), + ws: () => + new Promise((resolve) => { + const start = Date.now() + + const failTimeout = setTimeout(() => { + resolve("failed") + }, 5000) + + globalThis.__comty_shared_state.ws.sockets + .get("main") + .once("pong", () => { + failTimeout && clearTimeout(failTimeout) + + resolve(Date.now() - start) + }) + + globalThis.__comty_shared_state.ws.sockets.get("main").emit("ping") + }), +} + +export default async ({ select } = {}) => { + let selectedPromises = [] + + if (Array.isArray(select)) { + select.forEach((item) => { + if (!fetchers[item]) { + return + } + selectedPromises.push(fetchers[item]()) + }) + } else { + selectedPromises = [fetchers["http"](), fetchers["ws"]()] + } + + const result = await Promise.all(selectedPromises) + + return result +}