mirror of
https://github.com/ragestudio/comty.js.git
synced 2025-06-09 02:24:18 +00:00
move measurePing as a util
This commit is contained in:
parent
3a75a8bb11
commit
f051b73e9d
@ -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
|
||||
}
|
63
src/utils/measurePing.js
Executable file
63
src/utils/measurePing.js
Executable file
@ -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
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user