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

603
Visualizações
Reconexión de WebRTC después de pérdida de conexión (intento de reconexión)

Tengo una aplicación de JavaScript WebRTC que funciona. Aquí está el problema: si durante una llamada web hay una mala conexión de red, la llamada se detiene sin que WebRTC intente volver a conectarse.

Me gustaría mejorar el código de mi aplicación agregando un sistema de intento de reconexión automática, sin embargo, para hacerlo necesito entender algo de teoría sobre WebRTC (y creo que esto puede ser muy útil para muchos otros desarrolladores).

Aquí están mis preguntas:

  1. ¿WebRTC tiene una funcionalidad nativa para intentar la reconexión si la red es mala o debo escuchar algún "tigger de desconexión" y llamar a "una función" para iniciar una nueva conexión desde cero?

  2. Si las cosas no se pueden hacer mágicamente, ¿cuáles son los "activadores de desconexión" correctos y "la función" a partir de la cual se debe reiniciar el proceso de intento de reconexión? ¿Hay algo que pueda (o deba) tomarse de la conexión anterior?

  3. He leído sobre un parámetro {iceRestart: true}. ¿Debería usarse para la primera llamada (entonces WebRTC manejará mágicamente la desconexión al intentar volver a conectarse) o debería usarlo SOLO cuando mi código intente volver a conectarse (en la segunda, tercera vez...)?

  4. ¿Cuál es la diferencia entre el estado de conexión "desconectado", "fallido" y "cerrado" y tiene algo que ver con intentar volver a conectarse con una red defectuosa?

  5. ¿Cuál es la mejor manera de evitar intentar volver a conectarse en un bucle infinito si no hay esperanza de volver a conectarse (es decir, Internet está completamente caído)?

  6. ¿Cuál es la diferencia entre on ice connectionstatechange y onconnectionstatechange? ¿Cuál es relevante en mi caso?

¡Gracias!

Lucas

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Pude encontrar la solución (JavaScript) a través de la experimentación...

1) ¿WebRTC tiene una funcionalidad nativa para intentar la reconexión si la red es mala o debo escuchar algún "tigger de desconexión" y llamar a "una función" para iniciar una nueva conexión desde cero?

Sí, lo hace de manera predeterminada en JavaScript, a menos que su código maneje la desconexión terminando la llamada de manera proactiva a través de líneas de instrucciones adicionales.

2) Si las cosas no se pueden hacer mágicamente, ¿cuáles son los "activadores de desconexión" correctos y "la función" a partir de la cual se debe reiniciar el proceso de intento de reconexión? ¿Hay algo que pueda (o deba) tomarse de la conexión anterior?

Las cosas ya suceden debajo del capó (por arte de magia). Si el código finaliza la llamada, probablemente se deba a que el activador de desconexión (estado de conexión ICE = desconectado O estado de conexión = desconectado) activa algún código adicional de la aplicación que copiaste/pegaste desde algún lugar.

3) He leído sobre un parámetro {iceRestart: true}. ¿Debería usarse para la primera llamada (entonces WebRTC manejará mágicamente la desconexión al intentar volver a conectarse) o debería usarlo SOLO cuando mi código intente volver a conectarse (en la segunda, tercera vez...)?

No es útil en este escenario.

4) ¿Cuál es la diferencia entre estado de conexión "desconectado", "fallido" y "cerrado" y tiene algo que ver con intentar volver a conectarse con una red defectuosa?

Tienes que escuchar connectionState = desconectado, los otros no importan para este propósito.

5) ¿Cuál es la mejor manera de evitar intentar volver a conectarse en un ciclo infinito si no hay esperanza de volver a conectarse (es decir, Internet está completamente caído)?

No hay problema, la reconexión que maneja WebRTC automáticamente no le costará nada en términos de señalización, por lo tanto, puede intentar reconectarse tantas veces como quiera, el usuario eventualmente saldrá de la llamada por su cuenta si las cosas van demasiado lentas.

6) ¿Cuál es la diferencia entre oniceconnectionstatechange y onconnectionstatechange? ¿Cuál es relevante en mi caso?

No hay diferencia en este caso, la única diferencia es que el cambio de estado del hielo se activa justo antes del cambio de estado de la conexión.

--

¡Espero que esto sea útil para alguien!

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