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

523
Vistas
¿Cómo funciona el evento de desconexión en socket.io?

Seguí un tutorial y pude copiar/construir una aplicación web simple en tiempo real. Entiendo todo, desde el código, excepto una cosa. El evento 'desconectar'. Eliminé la mayor parte del código para simplificarlo, pero es así:

 //server.js io.on('connection', (socket) => { //...I removed code from here for simplification socket.on('disconnect', () => { socket.broadcast.emit('user-disconnected', users[socket.id]); delete users[socket.id]; }) }) //client.js //...a lot of code removed from here for simplification socket.on('user-disconnected', myname => {appendMessage(`${myname} left`)} )

Para mi sorpresa, este código funciona y cuando un usuario cierra la ventana o sale de la página, agrega el mensaje que dejó el usuario, pero ¿cómo sabe que el usuario se fue? Hasta donde yo sé, la palabra 'desconectar' es solo una cadena sin otro significado semántico, ¿verdad? Quiero decir, no es como, por ejemplo, la función addEventListener('click') que 'click' es un evento integrado que significa algo. Según tengo entendido, los eventos en socket.io son palabras 'inventadas' por el programador para ayudar con la comunicación servidor/cliente, ¿verdad? Por lo tanto, no entiendo cómo salir de la página activa el evento de 'desconexión' aquí. ¿Alguien me ilumina, por favor?

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

0

El evento de disconnect es un evento integrado de socket.io que le indica cuándo se desconecta un cliente.

El JavaScript del cliente socket.io usa el detector de eventos beforeunload en la ventana, que se ejecuta antes de que se cierre la pestaña, luego envía un mensaje de "Voy a morir" al servidor y luego desaparece.

El servidor también puede intentar hacer ping al cliente y si nada regresa, ¡ups!, desconectado.

Por otro lado, el cliente puede desconectarse manualmente del servidor con:

 socket.disconnect();

Esto envía un mensaje de desconexión al servidor y luego se desconecta. Puede volver a conectarse con:

 socket.connect();
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