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