Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

323
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda