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

  1. Connectez-vous et rejoignez-nous : Un client se connecte à une session et commence à publier ou à s'abonner à des flux.
  2. É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).
  3. É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.
  4. 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é

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 OK pour é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, archives failed) 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

Ressources complémentaires