39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
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) => {
|
|
console.log('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);
|
|
});
|
|
|
|
}); |