From 35c167503db228be767c0b50e28108f4ba96a090 Mon Sep 17 00:00:00 2001 From: wearrrrr Date: Thu, 25 Jul 2024 22:15:11 -0500 Subject: [PATCH] Add WispServerTiming.ts, begin work on a dropdown that shows wisp servers and their ping --- src/components/SettingsContent/ProxyTab.astro | 9 ++- src/components/ts/WispServerTiming.ts | 49 +++++++++++++ src/pages/[lang]/index.astro | 1 + src/pages/[lang]/settings.astro | 73 ++++++++++--------- src/types.d.ts | 10 +++ 5 files changed, 106 insertions(+), 36 deletions(-) create mode 100644 src/components/ts/WispServerTiming.ts diff --git a/src/components/SettingsContent/ProxyTab.astro b/src/components/SettingsContent/ProxyTab.astro index 6dda0b3..e4caf17 100644 --- a/src/components/SettingsContent/ProxyTab.astro +++ b/src/components/SettingsContent/ProxyTab.astro @@ -29,6 +29,11 @@ const transportsList = [ { name: "Libcurl", value: "/libcurl/index.mjs" }, { name: "Bare", value: "/baremod/index.mjs" }, ]; + +const wispURLList = [ + { name: "Alu (US)", value: "wss://aluu.xyz/wisp/" }, + { name: "Nebula (US)", value: "wss://nebulaproxy.io/wisp/" } +]; ---
@@ -45,8 +50,8 @@ const transportsList = [
- - + +
diff --git a/src/components/ts/WispServerTiming.ts b/src/components/ts/WispServerTiming.ts new file mode 100644 index 0000000..ca67bfc --- /dev/null +++ b/src/components/ts/WispServerTiming.ts @@ -0,0 +1,49 @@ +export async function testWispServers(servers: WispServer[]): Promise { + let wispData: WispData[] = []; + + for (const server of servers) { + let start = performance.now(); + + try { + await new Promise((resolve, reject) => { + let socket = new WebSocket(server.url); + + socket.onopen = () => { + let end = performance.now(); + console.log(`Connected to ${server.url} in ${end - start}ms`); + let data = { + server: server, + time: end - start + }; + wispData.push(data); + socket.close(); + resolve(null); + }; + + socket.onerror = (error) => { + reject(error); + }; + }); + } catch (error) { + console.error(`Failed to connect to ${server.url}`, error); + } + } + + if (wispData.length === servers.length) { + return wispData; + } else { + throw new Error('Failed to connect to all servers'); + } +} + + +window.wispData = await testWispServers([ + { + url: 'wss://aluu.xyz/wisp/' + }, + { + url: 'wss://nebulaproxy.io/wisp/' + }, +]) + +console.log(window.wispData); \ No newline at end of file diff --git a/src/pages/[lang]/index.astro b/src/pages/[lang]/index.astro index adfd071..c7d0fc4 100644 --- a/src/pages/[lang]/index.astro +++ b/src/pages/[lang]/index.astro @@ -60,6 +60,7 @@ export function getStaticPaths() {
+