Guide de transition vidéo de Vonage pour Node

Transition de opentok à @vonage/video ou @vonage/server-sdk

Introduction

Objectif

Le SDK OpenTok Node est en mode maintenance, car nous sommes passés à un nouveau SDK vidéo. Video SDK où les identifiants Vonage peuvent être utilisés dans notre Node SDK dans toutes les API.

Champ d'application

Pour conserver le @vonage/server-sdk le plus petit possible, le SDK Node a été divisé en modules plus petits. en modules plus petits. Cela signifie que vous pouvez installer uniquement le module @vonage/video dans votre projet plutôt que le SDK complet. Quelle que soit la voie choisie, seuls les LTS de NodeJS seront prises en charge (au moment de la rédaction du présent document, la version minimale est 18). Le SDK peut prendre en charge les modules Node ESM et CJS.

Pour les besoins de ce document, tous les exemples seront réalisés en utilisant le SDK complet complet en tant que module CJS. async/await sera également utilisé car il est moins verbeux que l'utilisation de promises. Il faut garder à l'esprit que async/await n'est que du sucre syntaxique autour des promesses. Il n'y a pas de différence de fonctionnalité. Ce document utilisera également la dernière version d'ECMAScript pour les promesses. const et let ainsi que d'utiliser les fonctions les fonctions "fat-arrow".

Le NodeSDK est écrit en Typescript, mais ce n'est pas une obligation. Typescript fournit des fichiers de définition pour votre IDE respectif afin d'afficher correctement l'utilisation.

Hypothèses

Afin de migrer d'OpenTok vers le SDK Node, vous devez savoir comment les promesses (ou async/await). Les rappels ne sont plus pris en charge.

Ressources

Code source du SDK vidéo de Vonage Documentation de l'API Video de Vonage Spécifications de l'API Video de Vonage

Planifier votre migration

Évaluer l'impact

Le SDK OpenTok a été écrit en utilisant des callbacks. Cela signifie que la migration nécessitera des changements significatifs dans votre projet. Selon la manière dont vous avez structuré vos fonctions, cela pourrait s'avérer difficile, cela peut s'avérer difficile. Prenons l'exemple de la création d'une session

Pour le SDK node, c'est aussi simple que cela :

Dans le passé, cela nécessitait des rappels pour accomplir la même tâche :

Comme vous pouvez le constater, il s'agit d'un changement de paradigme majeur dans la façon dont votre projet fonctionnera. Si votre projet s'appuie sur un autre paquetage qui ne prend pas en charge la fonction promisesvous pouvez utiliser Promise.resolve pour forcer la promesse à se résoudre. Cependant, cela peut avoir un coût en termes de performances, car l'application devra attendre que le SDK termine l'API. performance, car l'application devra attendre que le SDK termine l'appel à l'API pour avant de pouvoir continuer.

Si vous ne pouvez absolument pas vous convertir en async/awaitvous ne pourrez pas migrer.

Chronologie

Tenez compte du temps nécessaire pour mener à bien la transition. Cela dépendra de votre expérience du projet et de son impact, ainsi que des tests effectués. dépendra de votre expérience du projet et de son impact, ainsi que des tests. Il est essentiel de disposer d'une bonne suite de tests afin de pouvoir vérifier l'équivalence entre les SDK OpenTok et Vonage. l'équivalence entre les SDK OpenTok et Vonage Video. Le temps nécessaire de transition est à peu près proportionnel au nombre d'endroits où le SDK où le SDK OpenTok est utilisé dans votre code, ainsi que la variété des fonctionnalités utilisées. Certains appels API seront plus simples à remplacer que d'autres.

Mise à jour du paquet

Pour mettre à jour le paquet vidéo, vous pouvez l'installer en utilisant npm ou yarn comme suit :

npm install @vonage/server-sdk
yarn install @vonage/server-sdk

Si vous souhaitez installer le module autonome (les utilisateurs de Typescript devront également d'importer @vonage/auth afin de créer le client vidéo) :

npm install @vonage/video
yarn install @vonage/video

Modifications de l'authentification

L'authentification dans les SDK OpenTok et Node est gérée pour vous, vous n'avez donc à fournir les informations d'identification de votre Account qu'une seule fois lors de l'initialisation. La différence est qu'OpenTok requiert une clé et un secret d'API, tandis que pour l'API vidéo du SDK Node, vous devez fournir une application. Video API dans le SDK Node, vous devez fournir un identifiant d'application et sa clé privée. clé privée. Vonage et OpenTok utilisent tous deux une authentification basée sur un jeton, Les jetons de Vonage sont JWTs tandis qu'OpenTok utilise un format personnalisé. Bien que vous puissiez fournir une clé API et un secret à la fonction VonageClient tout comme avec OpenTok, il est utilisé pour d'autres API de Vonage, et non pour Video. Par conséquent, vous devrez créer ou utiliser une application existante. devrez créer ou utiliser une application existante.

Vous pouvez créer une application à partir de l'application Tableau de bord Vonage. Assurez-vous que la fonction vidéo est activée dans votre application. Cliquez sur sur "Modifier" pour une application existante afin d'afficher ses capacités et ses informations d'identification. Cliquez ensuite sur "Générer une clé publique et privée". Cette opération ne doit être effectuée une seule fois, car à chaque fois que vous faites cela, les informations d'identification changent, ce qui casse la paire de clés existante. la paire de clés existante. En cliquant sur ce bouton, vous déclencherez le téléchargement de votre clé privée. Vous devez placer ce fichier dans un endroit sûr pour le tester. NE JAMAIS PARTAGER OU EXPOSER VOTRE CLÉ PRIVÉE ! La clé privée est en fait le "mot de passe" de votre application. et doit donc être traitée avec soin.

Pour plus d'informations sur la création d'une application, voir le guide de démarrage.

Une fois que vous avez créé l'application et téléchargé la clé privée, vous pouvez alors transmettre ces informations au client :

Stratégies de migration

Passer du callback aux promesses n'est pas une tâche facile. Il y a de fortes chances que votre projet entier utilise des callbacks. Il se peut également que vous utilisiez des paquets qui sont également écrits à l'aide de callbacks. Il est préférable de prendre chaque appel d'API un par un.

Veuillez noter que l'utilisation de la fonction util.promisify ne fonctionne pas toujours. fonctionner. Certaines fonctions de rappel renvoient plusieurs paramètres qui util.promisify n'est pas en mesure de gérer.

Méthodes modifiées

Méthode OpenTok Méthode Vonage Notes
createSession() createSession() Les mediaMode est actuellement "activée" ou "désactivée"
generateToken() generateClientToken() Cette méthode a été renommée pour mieux refléter ce qu'elle fait
listArchives() searchArchives() Cette méthode a été renommée pour mieux refléter ce qu'elle fait. La pagination automatique n'est pas activée
setArchiveLayout() updateArchiveLayout() Cette méthode a été renommée pour mieux refléter ce qu'elle fait. Les multiples paramètres de la mise en page ont été remplacés par un seul argument qui prend une valeur de ArchiveLayout
signal() sendSignal() Cette méthode a été renommée pour mieux refléter ce qu'elle fait
forceDisconnect() disconnectClient() Cette méthode a été renommée pour mieux refléter ce qu'elle fait
getStream() getStreamInfo() Cette méthode a été renommée pour mieux refléter ce qu'elle fait
listStreams() getStreamInfo() Cette méthode a été supprimée, getStreamInfo() renvoie tous les flux si aucun n'est fourni comme second argument

Recommandations pour les tests

Des tests approfondis sont essentiels pour assurer une transition en douceur, à la fois pendant et après la migration. la migration. Il s'agit non seulement de tests unitaires, mais aussi de tests d'intégration et de régression. d'intégration et de régression. Il est également utile de tester manuellement le flux de votre application au moins une fois avant et après la migration, afin de s'assurer que vos tests automatisés sont efficaces. au moins une fois avant et après la migration pour s'assurer que les tests automatisés automatisés font ce que vous pensez qu'ils font, ou pour détecter tout problème que les tests n'auraient pas décelé. n'ont pas détectés. Vous pouvez même envisager de créer des tests d'équivalence. L'idée est de L'idée est de créer une suite qui affirme que les versions OpenTok et Vonage Video de votre application font la même chose. de votre application font la même chose. Ces tests peuvent ensuite être supprimés une fois que votre transition est terminée et que la version OpenTok a été mise en place. transition est terminée et que la version OpenTok de votre application est supprimée.

Canaux de soutien

Pour obtenir de l'aide générale et discuter de la transition vers Vonage Video, consultez les sites suivants le Canal #video-api sur notre communauté Slack, où vous pouvez obtenir des réponses du personnel de Vonage et d'autres utilisateurs.

Vous pouvez également nous contacter sur X @VonageDev.

La personne à contacter en cas de problème avec l'API Video est la suivante support@api.vonage.com.

Support direct via. Slack : Développeur Vonage Slack

Si vous trouvez un bogue avec le SDK, envoyez un ticket dans déposer un problème avec les étapes de reproduction sur Github

Enfin, le module vidéo est doté d'une documentation générée automatiquement et hébergée dans le fichier wiki de l'archive GitHub.