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

596
Vistas
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 Respuestas
Responde la pregunta

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 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