En socket.io, el código básico de conexión del lado del servidor generalmente se parece a esto:
// When a client connects to this server io.on('connection', (socket) => { // When a player is ready to start the game socket.on('playerReady', (playerData) => { console.log(`playerReady received from client ${socket.id} with data ${playerData}`); }); }); Mi pregunta es sobre el alcance de la variable de socket .
Para una mejor estructura de código, ¿es posible hacer algo como lo siguiente y tener acceso tanto a socket como a playerData dentro de la función de devolución de llamada?
// When a client connects to this server io.on('connection', (socket) => { // When a player is ready to start the game socket.on('playerReady', onPlayerReady); }); // Callback function onPlayerReady = (playerData) => { // Problem: socket is not defined console.log(`playerReady received from client ${socket.id} with data ${playerData}`); }; NB: el almacenamiento en caché socket como una variable global no parece ser adecuado, ya que parece que tiene un valor diferente para diferentes clientes.