const socketIO = require('socket.io'); const handlers = require('./handlers'); /** * Initialize Socket.IO * @param {object} server - HTTP server instance * @returns {object} Socket.IO instance */ const initializeSocket = (server) => { const io = socketIO(server, { cors: { origin: '*', methods: ['GET', 'POST'] } }); // Authentication middleware for socket connections io.use((socket, next) => { // Simple authentication can be added here if needed // const token = socket.handshake.auth.token; // if (token validation logic) next(); // else next(new Error('Authentication error')); next(); }); // Handle connection io.on('connection', (socket) => { console.log(`New client connected: ${socket.id}`); // Register event handlers handlers.registerHandlers(io, socket); // Handle disconnection socket.on('disconnect', () => { console.log(`Client disconnected: ${socket.id}`); }); }); return io; }; module.exports = initializeSocket;