Reconectar los medios de una llamada o conversación
Visión general
Esta guía explica cómo volver a conectarte a una llamada o a los medios de una conversación en tu aplicación cliente de Vonage JavaScript.
Reconectar automáticamente
El Client SDK de JavaScript se volverá a conectar automáticamente a un llame a o de una conversación medios de comunicación si una conexión se corta durante un par de segundos sin que tengas que hacer nada.
Lo siguiente es para las situaciones en las que una ventana/pestaña del navegador se cierra/refresca accidentalmente o el usuario quiere cambiar de entrada de audio y todavía está dentro del límite de tiempo de 20 segundos para volver a conectarse.
Consideraciones
Para que la reconexión se produzca con éxito, deben darse algunas condiciones.
- La aplicación debe crear un nuevo JWT para el usuario que se vuelve a conectar con su nombre de usuario único para poder instanciar el archivo Objeto de aplicación que tiene el
reconnectCallygetConversationmétodos. - El Id de Conversación y el Id de RTC (o Leg) también serán necesarios para reconectar al usuario.
Esto significa que estos valores (nombre de usuario, Id de conversación e Id de RTC ) deberán almacenarse en el navegador para que puedan recuperarse cuando se recargue la aplicación. Tanto localStorage y sessionStorage para almacenar los datos. El que elijas dependerá de tu caso de uso.
Existe una opción mediaParams que se puede añadir para modificar el objeto MediaStream y hacer cosas como cambiar el dispositivo de entrada de audio. Visite la página documentación para ver todos los argumentos.
Volver a conectar una llamada
application.reconnectCall(
"conversation_id",
"rtc_id",
{ audioConstraints: { deviceId: "device_id" } }
).then((nxmCall) => {
console.log(nxmCall);
}).catch((error) => {
console.error("error reconnecting call", error);
});
Puede encontrar un ejemplo de aplicación en este GitHub repo.
Nota: Cuando vuelvas a conectarte, te unirás automáticamente a la llamada. No es necesario answer() en el objeto de llamada.
Reconectar los medios de una conversación
conversation.media.enable({
reconnectRtcId: "UUID",
audioConstraints: { deviceId: "device_id" }
}).then((stream) => {
console.log(stream)
}).catch((error) => {
console.error("error renabling media", error);
});