let io = null; module.exports = { init: (httpServer) => { io = require('socket.io')(httpServer, { cors: { origin: "*", methods: ["GET", "POST"] } }); io.engine.on('connection_error', (err) => { try { const ctx = err && err.context ? err.context : null; const req = ctx && ctx.req ? ctx.req : null; const headers = req && req.headers ? req.headers : {}; console.log('Socket connection error:', { code: err && err.code, message: err && err.message, url: req && req.url, transport: ctx && ctx.transport, host: headers && headers.host, origin: headers && headers.origin }); } catch (e) { console.log('Socket connection error'); } }); io.on('connection', (socket) => { console.log('Client connected:', socket.id); socket.on('disconnect', () => { console.log('Client disconnected:', socket.id); }); }); return io; }, getIO: () => { if (!io) { throw new Error("Socket.io not initialized!"); } return io; }, emit: (event, data) => { if (io) { io.emit(event, data); } } };