Cómo funcionan los eventos en la Video API
La Video API de Vonage se basa en eventos: cada cambio en una sesión, transmisión o módulo opcional emite llamadas de retorno documentadas a los objetos del Client SDK (sesión, editor, suscriptor) y a cualquier punto final del servidor que registres. Al conectar controladores a esas llamadas de retorno y revisarlas más tarde con herramientas como Video Inspector o Archiving Inspector, puedes reaccionar de inmediato, mantener informados a los participantes y mantener un registro de auditoría del estado de la sesión.
Flujo de eventos en una sesión de vídeo
- Conéctate y únete: Un cliente se conecta a una sesión y empieza a publicar o a suscribirse a flujos.
- Emisión de eventos del ciclo de vida: Objetos SDK (
Session,Publisher,Subscriber,Stream) y módulos opcionales, como archivo, emisión/retransmisión en directo, compositor con experiencia, subtítulos en directo, transcripcióny Interconexión SIP — Enviar eventos que describan los cambios en el ciclo de vida y en los soportes (consulta la tabla de módulos opcionales que figura a continuación para ver el catálogo completo). - Eventos de envío: La nube de Vonage reenvía los eventos a otros participantes y, cuando está configurado, a tus puntos finales de webhook.
- React en tu aplicación: Actualice el estado de la interfaz de usuario en el cliente, active la lógica empresarial en el servidor y registre los eventos importantes para su posterior análisis. Juntas, estas funciones le permiten observar, responder y recuperarse de forma dinámica, todo ello a través de un modelo de eventos unificado.
De dónde vienen los eventos de vídeo
SDK de cliente
Nota: En esta guía se destacan familias de eventos representativas de clientes y servidores. Consulte la Descripción general del Client SDK para consultar enlaces a material de referencia sobre eventos específicos de cada plataforma.
Sesión
- Ciclo de vida:
sessionConnected,connectionDestroyed. - Cambios en la corriente:
streamCreated,streamPropertyChanged. - Señalización:
signal,signal:type. - Módulos opcionales: Retrollamadas orientadas al cliente para archivado, transcripción, subtítulos en directo y control de emisión. Consulte las guías de los módulos enlazadas a continuación para obtener información completa.
Editorial
- Estado de los medios:
videoEnabled/videoDisabled,audioEnabled/audioDisabled. - Red/calidad:
networkQualityLevelChanged,videoDisableWarning. - Módulos opcionales: Mensajes de solicitud de permisos del dispositivo (
accessDialogOpened,accessDenied) y diagnóstico (audioLevelUpdated) viven en las guías de publicación.
Suscriptor
- Estado de los medios:
videoEnabled/videoDisabled. - Red/calidad:
videoDisableWarning,videoDisableWarningLifted. - Módulos opcionales:
audioLevelUpdatedEn las guías de personalización aparecen las llamadas de retorno a la maquetación y otras ayudas para los suscriptores.
Familias de devolución de llamada
| Familia | Cuando se dispara | Referencia |
|---|---|---|
| Supervisión de sesiones | Inicio/fin de sesión; creación/eliminación de conexiones/flujos | Guía de supervisión de sesiones |
| Archivado | Ciclo de vida del archivo: iniciado, detenido, fallido | Guía de archivo |
| Emisión | Ciclo de vida de la emisión: iniciada, parada, fallida | Guía de difusión |
| Experiencia con Composer | Actualizaciones sobre el ciclo de vida y el estado de Composer | Guía del compositor de experiencias |
| Subtítulos en directo | Carga útil de los subtítulos | Guía de subtítulos en directo |
| Transcripción | Disponibilidad/estado del expediente académico | Guía de transcripción |
| Interconexión SIP | Ciclo de vida de las llamadas SIP: invitación de entrada/salida, desconexión | Guía sobre el SIP |
Herramientas de observabilidad
- Inspector de vídeo expone líneas de tiempo de eventos de sesión para depuración.
- Inspector de archivo Muestra una línea temporal con los cambios en el estado de archivado de los flujos de trabajo de archivado.
- API de Insights y Informes sobre el uso de vídeos recuentos de eventos agregados para análisis.
- El Guía de monitorización de sesiones explica cómo realizar un seguimiento del inicio y el fin de las sesiones y cómo mostrar el estado actual de las sesiones a los equipos operativos (por ejemplo, en tus propios paneles de control).
Trabajar con manejadores de eventos de cliente
Los patrones de los controladores de eventos son similares en todos los SDK. El siguiente ejemplo muestra el SDK de JavaScript:
session.on('streamCreated', event => {
const stream = event.stream;
session.subscribe(stream, 'subscriberContainer', {
insertMode: 'append',
width: '100%',
height: '100%'
});
});
publisher.on('networkQualityLevelChanged', event => {
updateNetworkBadge(event.networkQualityLevel);
});
session.on('signal:layout', event => {
applyLayout(event.data);
});
Aplique el mismo patrón en los SDK nativos: iOS (OTSessionDelegate), Android (Session.SessionListener), Windows (Session controladores de eventos), y Linux (otc_session_callbacks) vinculando los observadores equivalentes para cada plataforma.
Para consultar la lista completa de eventos, véanse las referencias de la plataforma: Eventos de sesión de JavaScript, iOS OTSessionDelegate funciones de devolución de llamada, Android Session.SessionListener, API de sesión de Windowsy Callbacks de sesión en Linux.
Gestión de las respuestas del servidor
- Registre las URL de devolución de llamada en Panel de la Video API de Vonage o a través del API REST de Video.
- Valida las solicitudes entrantes, implementa reintentos y revisa la política de firma y retrasos descrita en Verificación de los webhooks.
- Procesar rápidamente las cargas útiles: poner en cola el trabajo y responder con
200 OKpara evitar que los reintentos bloqueen la cola. - Registre los cuerpos de las solicitudes junto con metadatos como el ID de sesión, el ID de conexión y el ID de flujo para poder correlacionar las devoluciones de llamada del servidor con los eventos del lado del cliente.
Elegir dónde reaccionar
- Gestionar las actualizaciones transitorias de la experiencia de usuario en el cliente: Utilice los eventos del SDK para alternar los indicadores de la interfaz de usuario (iconos de silencio, banners de reconexión) o pedir al usuario que actualice.
- Escalar los problemas persistentes al servidor: Reenvíe los fallos de flujo o de conexión a su backend para alertar a los operadores o activar flujos de trabajo automatizados.
- Conservar los datos de Audit: Almacenar las funciones de devolución de llamada críticas (por ejemplo,
sessionDestroyedArchivofailed) para las revisiones de conformidad y posteriores a los incidentes. - Prueba con utillaje: Reproduce los problemas reproduciendo los registros de sesión en el Inspector de vídeo o exportando métricas a través de API de Insights.
Hoja de referencia de eventos
| Familia de eventos | Ejemplos de eventos | Entregado a través de | Reacción típica |
|---|---|---|---|
| Ciclo de vida de la sesión | sessionConnected, connectionDestroyed, streamCreated |
SDK de cliente, llamadas de retorno para monitorización de sesión | Actualización de las listas de participantes, limpieza de la interfaz de usuario, persistencia del estado de la sesión |
| Calidad de los medios | videoDisabled, networkQualityLevelChanged, reconnected |
SDK de cliente | Ajustar diseños, mostrar advertencias, cambiar a modos sólo audio |
| Señalización de aplicaciones | signal, signal:layoutCanales de datos personalizados |
SDK de cliente | Sincronizar el estado de la interfaz de usuario, difundir anotaciones y compartir metadatos |
| Grabación y difusión | Archivar o transmitir el estado de la llamada de retorno (started, stopped, failed) |
Archivo y emisión de llamadas de retorno | Mostrar el estado, activar el postprocesamiento, emitir alertas |
| Subtítulos y transcripción | Estado de la llamada de retroalimentación de la transcripción (completed) |
Llamadas de seguimiento de transcripción | Guardar las transcripciones en el almacenamiento |