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

185
Vistas
Socket.Io cómo emitir a todos los miembros en una sala desde una instancia de socket, incluido el remitente

¿Cómo emito a todos los miembros de una sala desde una instancia de socket?

Sé que puedo hacer io.in('room').emit('event', data); si tengo acceso a la instancia de IO, pero en mi caso solo tengo acceso al socket del remitente, almaceno el socket del usuario en un objeto de usuario y lo paso alrededor de mi código para que pueda emitir desde cualquier lugar, pero como resultado no tengo acceso a la instancia de IO.

¿Cómo puedo emitir a todos los miembros de una sala, incluido el remitente, desde la instancia de socket del remitente?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Bueno, es mejor que te des acceso a la instancia de io de alguna manera para que puedas hacer io.in(room).emit(...) . Puede exportarlo desde donde lo creó y luego importarlo donde se encuentre o puede hacer que esté disponible de otra manera.

Aquí hay otras cuatro formas de hacerlo:

Adjunte la propiedad .io a cada socket

En el archivo, donde crea la instancia io , puede adjuntarla como una propiedad a cada socket.

 // put io on each socket io.on('connection', socket => { socket.io = io; });

Luego, en cualquier socket, puede obtener io con socket.io .


Ponga la instancia io en su objeto de app

Si la app está disponible, algunas personas colocan la instancia de io en el objeto de la app con app.set("io", io); entonces el código en otro lugar puede obtenerlo con io.get("io"); .


Enviar a la habitación y a sí mismo

Como solución alternativa, también puede enviar a ambos:

 socket.broadcast(room).emit(...); socket.emit(...);

Usar socket.server no documentado

También hay una propiedad no documentada en el socket que le da acceso al objeto del servidor. Úselo bajo su propio riesgo:

 socket.server.in("room").emit(...);

que esencialmente te da la instancia io .

about 4 years ago · Juan Pablo Isaza Denunciar
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