Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

232
Vistas
Socket.IO -- ¿Cómo puedo obtener todos los sockets conectados en un middleware en socket io?

Estoy usando un middleware que valida el token JWT de

 socket.handshake.auth.token

Después de validar el token, agrego al usuario en la variable de socket de esta manera

 socket.user = user

Tengo una función que busca a todos los usuarios conectados usando la variable io.

 const getAllUsers = () => { const connectedSockets = Array.from(io.sockets.sockets.values()); const connectedUsers = connectedSockets.map((socket) => socket.user); console.log(connectedUsers); return connectedUsers; };

Pero el problema es que no puedo acceder a esta variable io en mi middleware. El middleware solo tiene acceso a un socket y la siguiente variable. ¿Hay alguna manera de acceder a la variable io en mi middleware? ¿O obtener todos los enchufes conectados de alguna otra manera?

OBJETIVO:

Quiero ver si el mismo usuario está intentando conectarse con un enchufe diferente. Y si lo está, bloquea la conexión. Por lo tanto, necesito una matriz de todos los usuarios conectados.

¿Hay alguna otra forma de implementar esta lógica sin un middleware?

MEDIO AMBIENTE

 const protectSocket = async (socket, next) => { const token = socket.handshake.auth.token; if (token) { try { const decoded = jwt.verify(token, process.env.JWT_SECRET); //get user from token socket.user = await User.findById(decoded.id).select("-password"); return next(); } catch (err) { console.log(err); return next(new Error(err)); } } else { return next(new Error("Token is missing")); }
about 4 years ago · Santiago Gelvez
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda