Files
drb-server/src/modules/socketServer.mjs
Logan Cusano 066404dd10
Some checks failed
Update Wiki from JSDoc / update-wiki (pull_request) Has been cancelled
Lint JavaScript/Node.js / lint-js (pull_request) Failing after 11s
DRB Tests / drb_mocha_tests (pull_request) Has been cancelled
Updated dir structure to put the actual source code in the general /src dir
2024-08-17 18:44:18 -04:00

48 lines
1.2 KiB
JavaScript

import { DebugBuilder } from "../modules/debugger.mjs";
const log = new DebugBuilder("server", "socketServer");
import express from "express";
import { createServer } from "node:http";
import { Server } from "socket.io";
import morgan from "morgan";
import {
nodeLoginWrapper,
nodeUpdateWrapper,
nodeDisconnectWrapper,
nearbySystemsUpdateWraper,
} from "./socketServerWrappers.mjs";
export const app = express();
export const server = createServer(app);
export const nodeIo = new Server(server);
app.use(morgan("tiny"));
app.get("/", (req, res) => {
res.send("<h1>Hello world</h1>");
});
nodeIo.on("connection", (socket) => {
log.INFO("a user connected", socket.id);
socket.on("node-login", async (data) => {
await nodeLoginWrapper(data, socket);
await socket.emit("node-login-successful");
});
socket.on("node-update", async (data) => {
let tempPromises = [];
tempPromises.push(nodeUpdateWrapper(data.node));
tempPromises.push(
nearbySystemsUpdateWraper(data.node.nuid, data.nearbySystems),
);
await Promise.all(tempPromises);
await socket.emit("node-update-successful");
});
socket.on("disconnect", () => {
nodeDisconnectWrapper(socket.id);
});
});