48 lines
1.2 KiB
JavaScript
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);
|
|
});
|
|
});
|