Server Management
This commit is contained in:
+23
-1
@@ -1,7 +1,8 @@
|
|||||||
import { getServerList, KnownServer } from "@/lib/serverList";
|
import { getServerList, getWSUrl, KnownServer } from "@/lib/serverList";
|
||||||
import EnclaveServer from "./server";
|
import EnclaveServer from "./server";
|
||||||
import * as ed from "@noble/ed25519";
|
import * as ed from "@noble/ed25519";
|
||||||
import { sha512 } from "@noble/hashes/sha2.js";
|
import { sha512 } from "@noble/hashes/sha2.js";
|
||||||
|
import { base58 } from "@scure/base";
|
||||||
|
|
||||||
ed.hashes.sha512 = sha512;
|
ed.hashes.sha512 = sha512;
|
||||||
|
|
||||||
@@ -33,4 +34,25 @@ export default class Enclave {
|
|||||||
public async init() {
|
public async init() {
|
||||||
this.serverList = await getServerList();
|
this.serverList = await getServerList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async addServer(hostname: string, isSecure: boolean) {
|
||||||
|
if (this.server) {
|
||||||
|
this.server.disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.server = new EnclaveServer(getWSUrl({ hostname, isSecure }));
|
||||||
|
|
||||||
|
if (!this.server.serverPublicKey) {
|
||||||
|
console.error("Failed to get public key");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.serverList.push({
|
||||||
|
name: "",
|
||||||
|
description: "",
|
||||||
|
hostname,
|
||||||
|
isSecure,
|
||||||
|
publicKey: base58.encode(this.server.serverPublicKey),
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -30,7 +30,7 @@ export default class EnclaveServer {
|
|||||||
this.hostname = hostname;
|
this.hostname = hostname;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async disconnect() {
|
public disconnect() {
|
||||||
this.websocket?.websocket.close();
|
this.websocket?.websocket.close();
|
||||||
this.websocket = undefined;
|
this.websocket = undefined;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,10 @@ export async function getServerList(): Promise<KnownServer[]> {
|
|||||||
return await invoke("get_server_list");
|
return await invoke("get_server_list");
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getHTTPUrl(server: KnownServer, path: string) {
|
export function getHTTPUrl(
|
||||||
|
server: { hostname: string; isSecure: boolean },
|
||||||
|
path: string,
|
||||||
|
) {
|
||||||
const hostname = server.hostname.includes(":")
|
const hostname = server.hostname.includes(":")
|
||||||
? server.hostname
|
? server.hostname
|
||||||
: server.hostname + ":3415";
|
: server.hostname + ":3415";
|
||||||
@@ -24,7 +27,7 @@ export function getHTTPUrl(server: KnownServer, path: string) {
|
|||||||
return (server.isSecure ? "https://" : "http://") + hostname + path;
|
return (server.isSecure ? "https://" : "http://") + hostname + path;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getWSUrl(server: KnownServer) {
|
export function getWSUrl(server: { hostname: string; isSecure: boolean }) {
|
||||||
const hostname = server.hostname.includes(":")
|
const hostname = server.hostname.includes(":")
|
||||||
? server.hostname
|
? server.hostname
|
||||||
: server.hostname + ":3415";
|
: server.hostname + ":3415";
|
||||||
|
|||||||
Reference in New Issue
Block a user