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 :
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) :
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.