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