Fonctionnement des événements dans l'API Video
L'API Video Vonage est axée sur les événements : chaque modification apportée à une session, à un flux ou à un module optionnel émet des rappels documentés aux objets du SDK client (Session, Publisher, Subscriber) et à tout point d'extrémité du serveur que vous enregistrez. En connectant des gestionnaires à ces rappels et en les examinant ultérieurement à l'aide d'outils tels que Video Inspector ou Archiving Inspector, vous pouvez réagir immédiatement, tenir les participants informés et conserver une piste d'audit de l'état de la session.
Flux d'événements dans une session vidéo
- Connectez-vous et rejoignez-nous : Un client se connecte à une session et commence à publier ou à s'abonner à des flux.
- Émettre des événements liés au cycle de vie : Objets SDK (
Session,Publisher,Subscriber,Stream) et des modules optionnels - tels que archivage, diffusion/diffusion en direct, compositeur d'expérience, sous-titres en direct, transcriptionet Interconnexion SIP - envoyer des événements décrivant le cycle de vie et les changements de support (voir le tableau des modules optionnels ci-dessous pour le catalogue complet). - Événements d'envoi : Le nuage de Vonage transmet les événements aux autres participants et, lorsqu'ils sont configurés, à vos points de terminaison webhook.
- React dans votre application : Mettez à jour l'état de l'interface utilisateur dans le client, déclenchez la logique métier sur le serveur et enregistrez les événements importants en vue d'une analyse ultérieure. Ensemble, ces fonctionnalités vous permettent d'observer, de répondre et de récupérer dynamiquement, le tout grâce à un modèle d'événement unifié.
L'origine des événements vidéo
SDK clients
Remarque : Ce guide présente les familles d'événements représentatives des clients et des serveurs. Voir les familles d'événements Vue d'ensemble du Client SDK pour des liens vers des documents de référence sur des événements spécifiques à une plate-forme.
Session
- Cycle de vie :
sessionConnected,connectionDestroyed. - Changements dans les cours d'eau :
streamCreated,streamPropertyChanged. - Signalisation :
signal,signal:type. - Modules optionnels : Rappels orientés client pour l'archivage, la transcription, les sous-titres en direct et le contrôle de la diffusion. Voir les guides des modules ci-dessous pour une couverture complète.
Éditeur
- État des médias :
videoEnabled/videoDisabled,audioEnabled/audioDisabled. - Réseau/qualité :
networkQualityLevelChanged,videoDisableWarning. - Modules optionnels : Invitations à l'autorisation de l'appareil (
accessDialogOpened,accessDenied) et les diagnostics (audioLevelUpdated) vivent dans les guides d'édition.
Abonné
- État des médias :
videoEnabled/videoDisabled. - Réseau/qualité :
videoDisableWarning,videoDisableWarningLifted. - Modules optionnels :
audioLevelUpdatedles rappels de mise en page et d'autres aides pour les abonnés figurent dans les guides de personnalisation.
Familles de rappel
| Famille | Lorsqu'il s'enflamme | Référence |
|---|---|---|
| Suivi de la session | Démarrage/arrêt de la session ; création/destruction de la connexion/du flux | Guide de suivi des sessions |
| Archivage | Cycle de vie de l'archive : démarrage, arrêt, échec | Guide d'archivage |
| Radiodiffusion | Cycle de vie de la diffusion : démarrage, arrêt, échec | Guide de diffusion |
| Compositeur d'expérience | Mise à jour du cycle de vie et de l'état du compositeur | Guide du compositeur d'expérience |
| Sous-titres en direct | Captions livraison de la charge utile | Guide des sous-titres en direct |
| Transcription | Disponibilité/état des transcriptions | Guide de transcription |
| Interconnexion SIP | Cycle de vie des appels SIP : invitation entrante/sortante, déconnexion | Guide SIP |
Outils d'observabilité
- Inspecteur vidéo expose les chronologies des événements de la session pour le débogage.
- Inspecteur de l'archivage affiche une chronologie des changements d'état de l'archivage pour les flux de travail d'archivage.
- API Insights et Rapports sur l'utilisation de la vidéo agréger le nombre d'événements à des fins d'analyse.
- Les Guide sur le contrôle des sessions explique comment suivre le démarrage et l'arrêt des sessions et comment faire apparaître l'état actuel des sessions pour les équipes opérationnelles (par exemple, dans vos propres tableaux de bord).
Travailler avec des gestionnaires d'événements clients
Les modèles de gestionnaires d'événements sont similaires d'un SDK à l'autre. L'exemple ci-dessous montre le SDK 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);
});
Appliquer le même modèle aux SDK natifs : iOS (OTSessionDelegate), Android (Session.SessionListener), Windows (Session ), et Linux (otc_session_callbacks) en liant les observateurs équivalents pour chaque plate-forme.
Pour une liste complète des événements, voir les références de la plate-forme : Événements de session JavaScript, iOS OTSessionDelegate rappels, Android Session.SessionListener, API de session Windowset Rappels de session Linux.
Gestion des rappels du serveur
- Enregistrer les URL de rappel dans le fichier Tableau de bord de l'API Video de Vonage ou par l'intermédiaire du Video API REST.
- Validez les demandes entrantes, mettez en place des tentatives et examinez la politique de signature et de renoncement décrite dans le document Verify Webhooks (en anglais).
- Traiter rapidement les charges utiles : mettre le travail en file d'attente et répondre avec
200 OKpour éviter que les tentatives ne bloquent votre file d'attente. - Enregistrez les corps des requêtes ainsi que les métadonnées telles que l'identifiant de session, l'identifiant de connexion et l'identifiant de flux, afin de pouvoir établir une corrélation entre les rappels du serveur et les événements côté client.
Choisir où réagir
- Gérer les mises à jour transitoires de l'interface utilisateur dans le client : Utilisez les événements du SDK pour faire basculer les indicateurs de l'interface utilisateur (icônes de sourdine, bannières de reconnexion) ou pour inviter l'utilisateur à actualiser ses données.
- Remonter les problèmes persistants jusqu'au serveur : Transmettez les échecs de flux ou de connexion à votre backend pour alerter les opérateurs ou déclencher des flux de travail automatisés.
- Persistance des données d'audit : Stocker les rappels critiques (par exemple
sessionDestroyed, archivesfailed) pour le contrôle de la conformité et les examens post-incidents. - Essai avec l'outillage : Reproduisez les problèmes en rejouant les journaux de session dans le fichier Inspecteur vidéo ou d'exporter des métriques via l'outil API Insights.
Aide-mémoire sur les événements
| Famille de l'événement | Exemples d'événements | Livré par | Réaction typique |
|---|---|---|---|
| Cycle de vie de la session | sessionConnected, connectionDestroyed, streamCreated | SDK clients, rappels de suivi de session | Mise à jour des listes de participants, nettoyage de l'interface utilisateur, maintien de l'état de la session |
| Qualité des médias | videoDisabled, networkQualityLevelChanged, reconnected | SDK clients | Ajuster la mise en page, afficher les avertissements, passer en mode audio uniquement |
| Signalisation des applications | signal, signal:layoutcanaux de données personnalisés | SDK clients | Synchronisation de l'état de l'interface utilisateur, diffusion des annotations, partage des métadonnées |
| Enregistrement et diffusion | Statut de l'archivage ou de la diffusion du rappel (started, stopped, failed) | Rappels d'archivage et de diffusion | Afficher l'état, déclencher le post-traitement, lancer des alertes |
| Légende et transcription | Statut du rappel de transcription (completed) | Rappels de transcription | Transmettre les transcriptions au stockage |