Server Management

This commit is contained in:
2026-08-18 16:20:43 +02:00
parent 06ca3a4bae
commit c0470e940b
3 changed files with 29 additions and 4 deletions
+23 -1
View File
@@ -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
View File
@@ -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;
} }
+5 -2
View File
@@ -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";