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