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

319
Vistas
Hacer que socket.io se vuelva a conectar al volver a ingresar a la página con el botón Atrás

todo el mundo -

Tengo una característica que estoy tratando de agregar a una aplicación Node.js que usa socket.io (4.x, si es importante). Estoy creando un juego en el que me gustaría que el usuario se vuelva a conectar a su juego existente si se desconecta y luego se vuelve a conectar.

La reconexión funciona bien si actualiza la página. Sin embargo, si, por ejemplo, navego a otro lugar y luego presiono el botón Atrás, la reconexión no ocurre. Por ejemplo, solo para probarlo, tengo:

 /*Server side:*/ socket.on('connection',(socket)=> { const pinger = setInterval(() => { io.to(socket.id).emit('ping', null); }, 1000); ...etc... } /*Client side:*/ const socket = io(); socket.on('ping',(data)=> { console.log('ping'); });

Lo que veo es un evento de "ping" cada segundo (como se esperaba). Voy a una página diferente y luego presiono el botón Atrás. La página se vuelve a renderizar, pero el evento "ping" no vuelve. Después de unos 30 segundos, la conexión se restablece, pero me gustaría que intentara restablecerse de inmediato.

¿Hay alguna manera fácil de obligar al juego a restablecer la conexión con el servidor antes?

¡Gracias por adelantado!

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

0

Encontré exactamente el mismo problema y mi solución fue agregar un oyente al evento pageshow (con el argumento 'e' en la devolución de llamada), luego verificar el valor de e.persisted , y si e.persisted es igual a verdadero (significa que la carga de la página actual no es una carga inicial) Luego llamo a window.location.reload() para recargar la página.

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