@andreabiagini5/applicazioni-e-servizi-web-project
Version:
Project for Applicazioni e Servizi Web.
85 lines • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.initializeIO = initializeIO;
exports.getIO = getIO;
exports.emitToRoom = emitToRoom;
exports.socketsLeave = socketsLeave;
exports.getPlayerSockets = getPlayerSockets;
exports.registerPlayerSocket = registerPlayerSocket;
exports.getPlayerSocket = getPlayerSocket;
exports.getSocketUsername = getSocketUsername;
exports.removePlayerSocket = removePlayerSocket;
const socket_io_1 = require("socket.io");
let io;
function initializeIO(server) {
if (process.env.NODE_ENV === 'production') {
let protocol = 'http';
let ip = 'localhost';
let port = '4173';
if (process.env.DOCKER) {
protocol = process.env.CLIENT_PROTOCOL;
ip = process.env.CLIENT_IP;
port = null;
}
const origin = `${protocol}://${ip}${!port ? '' : ':' + port}`;
console.log('CORSSSSSSSSSSS SOCKET', origin);
io = new socket_io_1.Server(server, {
cors: {
origin,
credentials: true,
},
});
}
else {
io = new socket_io_1.Server(server, {
cors: {
origin: 'http://localhost:5173',
credentials: true,
},
});
}
}
function getIO() {
return io;
}
function emitToRoom(room, event, ...data) {
if (io.sockets.adapter.rooms.get(room) != undefined) {
io.to(room).emit(event, ...data);
}
else {
io.of('/auth')
.to(room)
.emit(event, ...data);
}
}
function socketsLeave(room) {
if (io.sockets.adapter.rooms.get(room) != undefined) {
io.socketsLeave(room);
}
else {
io.of('/auth').socketsLeave(room);
}
}
const playerSockets = new Map();
function getPlayerSockets() {
return playerSockets;
}
function registerPlayerSocket(username, socket) {
playerSockets.set(username, socket);
}
function getPlayerSocket(username) {
return playerSockets.get(username);
}
function getSocketUsername(socket) {
let ret = undefined;
playerSockets.forEach((sock, username) => {
if (socket == sock) {
ret = username;
}
});
return ret;
}
function removePlayerSocket(username) {
playerSockets.delete(username);
}
//# sourceMappingURL=socket.js.map