2025-03-01 16:39:13 +01:00

48 lines
1.2 KiB
JavaScript

const express = require("express");
const { Server } = require("socket.io");
const http = require("http");
const app = express();
const path = require("path");
app.use(express.static(path.join(__dirname, './dist')));
app.disable("x-powered-by");
app.get('*', (req, res) => res.sendFile(path.join(__dirname, './dist', 'index.html')));
const server = http.createServer(app);
const io = new Server(server, {
cors: {origin: "*"},
pingTimeout: 30000,
pingInterval: 10000
});
const roomController = require('./controller/room');
const gameController = require('./controller/game');
roomController.setCleanupGameState(gameController.cleanupGameState);
io.on("connection", (socket) => {
try {
require("./handler/connection")(io)(socket);
} catch (error) {
console.error('Error handling socket connection:', error);
socket.emit('error', { message: 'Internal server error' });
}
});
server.on('error', (error) => {
console.error('Server error:', error);
});
const PORT = process.env.PORT || 5287;
server.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
process.on('SIGINT', () => {
console.log('Server shutting down...');
server.close(() => {
console.log('Server closed');
process.exit(0);
});
});