diff --git a/server/index.ts b/server/index.ts index 2a39c7c..165419a 100644 --- a/server/index.ts +++ b/server/index.ts @@ -22,6 +22,8 @@ import ocpService from "./services/ocp/ocpService.js"; import {db} from "../database/dbclient.js"; import {settings} from "../database/schema/settings.js"; import {count, eq} from "drizzle-orm"; +import {createNodeWebSocket} from "@hono/node-ws"; +import {streamSSE} from "hono/streaming"; // create the main prodlogin here const username = "lst_user"; @@ -34,6 +36,7 @@ export const installed = serverIntialized[0].count === 0 && process.env.NODE_ENV createLog("info", "LST", "server", `Server is installed: ${installed}`); const app = new OpenAPIHono({strict: false}); +export const {injectWebSocket, upgradeWebSocket} = createNodeWebSocket({app}); // middle ware app.use("*", logger()); @@ -70,6 +73,39 @@ app.doc("/api/ref", { }, }); +app.get( + "/api/log", + // upgradeWebSocket(() => { + // return { + // onMessage(event, ws) { + // console.log(`Message from client: ${event.data}`); + // ws.send("Hello from server!"); + // }, + // onClose: () => { + // console.log("Connection closed"); + // }, + // }; + // }) + async (c) => { + let id = 0; + let running = true; + return streamSSE(c, async (stream) => { + while (running) { + const message = `It is ${new Date().toISOString()}`; + await stream.writeSSE({ + data: message, + event: "time-update", + id: String(id++), + }); + await stream.sleep(1000); + if (id === 5) { + running = false; + } + } + }); + } +); + const routes = [ scalar, auth, @@ -149,15 +185,17 @@ process.on("beforeExit", async () => { }); const port = process.env.NODE_ENV === "development" ? process.env.VITE_SERVER_PORT : process.env.PROD_PORT; -serve( - { - fetch: app.fetch, - port: Number(port), - hostname: "0.0.0.0", - }, - (info) => { - createLog("info", "LST", "server", `Server is running on http://${info.address}:${info.port}`); - } +injectWebSocket( + serve( + { + fetch: app.fetch, + port: Number(port), + hostname: "0.0.0.0", + }, + (info) => { + createLog("info", "LST", "server", `Server is running on http://${info.address}:${info.port}`); + } + ) ); export type AppRoutes = typeof appRoutes; diff --git a/server/services/server/utils/serverData.json b/server/services/server/utils/serverData.json index e571db4..17dff98 100644 --- a/server/services/server/utils/serverData.json +++ b/server/services/server/utils/serverData.json @@ -1,7 +1,7 @@ { "servers": [ { - "sName": "test", + "sName": "Test", "serverDNS": "usmcd1vms036", "plantToken": "test3", "idAdress": "10.193.0.56", @@ -33,7 +33,7 @@ "contactPhone": "6366970253", "customerTiAcc": "ALPL01BETHINT", "lstServerPort": "4000", - "active": false, + "active": true, "serverLoc": "E:\\LST\\lstv2", "oldVersion": "E:\\LST\\lst_backend", "shippingHours": "[{\"early\": \"06:30\", \"late\": \"23:00\"}]",