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 comienza a publicar o suscribirse a flujos.
- Emitir eventos del ciclo de vida: Objetos SDK (
Session,Publisher,Subscriber,Stream) y módulos opcionales, como archivo, retransmisión en directo, compositor de experiencias, subtítulos en directo, transcripcióny Interconexión SIP - envían eventos que describen cambios en el ciclo de vida y en los medios (véase la tabla de módulos opcionales más abajo 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: Avisos de autorización de dispositivos (
accessDialogOpened,accessDenied) y diagnóstico (audioLevelUpdated) viven en las guías de publicación.
Abonado
- 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 dispara | Referencia |
|---|---|---|
| Control de la sesión | Inicio/parada de sesión; creación/destrucción de conexión/flujo | Guía de seguimiento de la sesión |
| Archivo | Ciclo de vida del archivo: iniciado, detenido, fallido | Guía de archivo |
| Difusión | Ciclo de vida de la emisión: iniciada, parada, fallida | Guía de difusión |
| Compositor de experiencias | Actualizaciones del ciclo de vida/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 SIP |
Herramientas de observación
- Inspector de vídeo expone líneas de tiempo de eventos de sesión para depuración.
- Inspector de archivos muestra una línea de tiempo de los cambios de estado de archivo para los flujos de trabajo de archivo.
- API de información y Informes de uso del vídeo recuentos de eventos agregados para análisis.
- En Guía de monitorización de sesiones explica cómo hacer un seguimiento del inicio y fin de las sesiones y cómo mostrar el estado actual de la sesión a los equipos operativos (por ejemplo, en sus propios paneles).
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, consulte las referencias de la plataforma: Eventos de sesión de JavaScript, iOS OTSessionDelegate devoluciones de llamada, Android Session.SessionListener, API de sesión de Windowsy Llamadas de retorno de sesión Linux.
Gestión de las retrollamadas 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.
- Valide las solicitudes entrantes, aplique reintentos y revise la política de firma/retorno descrita en Verificación de 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 UX 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.
- Persistir datos de Audit: Almacenar las llamadas de retorno críticas (por ejemplo
sessionDestroyedArchivofailed) para las revisiones de conformidad y posteriores a los incidentes. - Prueba con utillaje: Reproduzca los problemas reproduciendo los registros de sesión en el archivo Inspector de vídeo o exportando métricas a través de API de información.
Hoja de referencia de eventos
| Familia del evento | Ejemplos de actos | 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 | Estado de la devolución de llamada de archivo o emisión (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 devolución de llamada de transcripción (completed) | Llamadas de transcripción | Transmisión de transcripciones a almacenamiento |