Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

231
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!