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

225
Visualizações
Parece que el iPhone no puede mantener la conexión con el servidor usando socket.io

Estoy creando una aplicación basada en navegador usando node.js y socket.io. Permite a los usuarios crear un juego y unirse a una sala usando un código de sala (algo así como Jackbox Games, si lo has visto). Aquí está el problema que estoy teniendo. En mi computadora portátil, la conexión permanece abierta, pero si me conecto con mi teléfono, la conexión se cierra aleatoriamente. He confirmado esto de la siguiente manera:

En el lado del cliente, tengo este código:

 const socket = io(); socket.on('ping', (data) => { showMessage('info', 'ping', 500); socket.emit('pong', data); }); socket.on('error', (data) => { showMessage('error', data.message, 2000); });

Inicializamos el socket y luego emitimos inmediatamente un 'pong' cada vez que el servidor nos envía un 'ping'. ShowMessage es una función que muestra un mensaje en la pantalla; este es simplemente un diagnóstico.

En el lado del servidor, tengo:

 const socket = (http, server) => { const io = require('socket.io')(http, { pingInterval: 1000, pingTimeout: 1000, }); io.listen(server); setInterval(() => { pingTime = Date.now(); io.emit('ping', null); }, pingInterval); io.on('connection', (socket) => { console.log(`A user has connected from ${socket.handshake.address}`); console.log(`\tID: ${socket.id}`); } }

Aquí está el problema. En mi computadora, puedo ir a localhost:3000 y ver el mensaje "ping" parpadeando en la pantalla. Continúa hasta que mato el servidor. Cuando lo hago en mi iPhone 11 (usando Chrome), el mensaje "ping" parpadea un poco y luego se detiene, presumiblemente cuando se cierra el enchufe. La configuración de pingInterval y pingTimeout en el lado del servidor significa que el socket se volverá a conectar con bastante rapidez. Desafortunadamente, como la aplicación que estoy tratando de construir es un zumbador para un juego basado en la velocidad (piense en Jeopardy: la primera persona en presionar el botón responde la pregunta), solo volver a conectarse no es suficiente, realmente preferiría si el zócalo permanecería abierto. ¿Hay alguna forma de obligarlo a permanecer abierto?

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