Guide de transition vidéo de Vonage pour .NET

Transition de Opentok-.NET-SDK à vonage-dotnet-sdk

Introduction

Objectif

L'objectif de ce document est de fournir un point de départ pour la transition du SDK OpenTok .NET Server vers le SDK Vonage .NET Server. Vonage .NET Server SDK.

Champ d'application

Ce document suppose que vous utilisez au moins la version version 3.14.0 ou plus tard le OpenTok .NET SDK.

L'API Video a été ajoutée au serveur .NET dans la version 6.14.0. Vous devez utiliser la dernière version du SDK .NET de Vonage, qui peut être trouvée sur GitHub ou NuGet.

Hypothèses

Ce guide est destiné à être suivi par un ingénieur logiciel professionnel. Il suppose au moins un niveau de compétence de base avec .NET, les outils de développement .NET courants, les systèmes de construction et Git (ou un autre système de contrôle de version). Git (ou autre système de contrôle de version). Vous devez être à l'aise pour lire et écrire du code .NET, gérer les dépendances du projet, déployer et exécuter un projet .NET et l'exécuter. Une introduction au langage .NET, à la plate-forme et aux outils associés dépasse largement le cadre de ce document.

Ressources

Les liens suivants sont utiles pour compléter le présent document et pour se référer à tout ce qui n'est pas couvert dans ce document. dans ce document :

Vonage

TokBox

Planifier votre migration

Avant de passer d'OpenTok à Vonage Video, vous devez prendre en compte l'ampleur de la tâche afin de définir des attentes réalistes. réalistes.

Évaluer l'impact

La première question à laquelle il faut répondre est la suivante : quelle est la part du code de votre application qui dépend du SDK OpenTok ? Dressez une liste de tous les fichiers dans lesquels le SDK est directement utilisé. En d'autres termes, tous les fichiers .cs qui contient un fichier using OpenTokSDK référence. Vous pouvez rechercher dans les fichiers de votre projet la déclaration using OpenTokSDK à l'aide d'un IDE (Ctrl+Shift+F) ou d'un outil de ligne de commande ou un outil de ligne de commande pour identifier les fichiers concernés.

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. 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 OpenTok et Vonage Video. Le temps nécessaire pour effectuer la transition est à peu près proportionnel au nombre d'endroits où l'OpenTok est utilisé. nombre d'endroits 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.

Versionnement

OpenTok et Vonage Video sont deux produits différents, ce qui rend impossible une migration progressive.

Vous devez créer une branche temporaire sur votre système de contrôle de version pour la transition, afin de pouvoir apporter des modifications progressivement et fréquemment sans interrompre le projet existant. progressivement et fréquemment sans casser le projet existant. Vous pouvez également utiliser les tests du projet existant comme oracle de la correction. Idéalement, vous ne devriez fusionner la branche de transition avec la branche principale qu'une fois la conversion terminée. terminé la conversion.

Principaux changements et considérations

Nouvelles caractéristiques et normes

L'API Video de Vonage présente des caractéristiques équivalentes à celles d'OpenTok, et le SDK .NET est activement mis à jour pour être conforme aux spécifications de l'API. . Il existe néanmoins quelques différences majeures entre OpenTok et le SDK .NET de Vonage.

L'une d'entre elles consiste à s'appuyer sur des modèles de données appropriés plutôt que sur des types primitifs. L'objectif est d'éviter d'éviter "obsession primitive"en donnant plus de contexte à la signature des méthodes. en donnant plus de contexte de domaine aux signatures de méthodes.

Une autre est l'utilisation extensive des Monades, plutôt que les exceptions traditionnelles, afin d'offrir une approche plus fonctionnelle de la gestion des erreurs. Bien que les Monads soient un concept nouveau pour les développeurs, ils apportent des avantages précieux tels que la transparence et la prévisibilité tout en restant exempts d'exceptions. Par exemple, la création d'une nouvelle session renverra un objet Task<Result<CreateSessionResponse>> - a Result<T> représente le représente le résultat d'une opération qui peut échouer, et présente deux états possibles : un état d'échec et un état d'échec. Success ou un Failure. Dans ce scénario scénario particulier, le Result contiendra un CreateSessionResponse si l'opération a réussi, ou un IResultFailure si s'il a échoué.

Mise à jour du paquet

Tout d'abord, vous devrez installer ou mettre à jour le SDK .NET de Vonage dans votre projet. Vous pouvez le faire en utilisant le gestionnaire de paquets NuGet intégré à votre IDE (en recherchant Vonage), ou en lançant la commande suivante dans votre terminal : dotnet add package Vonage.

Pour une migration progressive, vous pouvez inclure les dépendances OpenTok et Vonage dans votre projet. Toutefois, nous recommandons fortement de ne procéder à cette opération que pour les tests et non pour les déploiements en production, car le SDK OpenTok a tendance à utiliser des versions plus anciennes des dépendances, ce qui peut entraîner des problèmes au moment de l'exécution. versions plus anciennes des dépendances, ce qui peut causer des problèmes au moment de l'exécution.

Modifications de l'authentification

L'authentification dans les SDK OpenTok et Vonage .NET Server est gérée pour vous, de sorte que vous ne devez fournir les informations d'identification de votre compte qu'une seule fois lors de l'initialisation. une seule fois lors de l'initialisation. La différence est qu'OpenTok requiert une clé et un secret API, tandis que pour l'API Video vidéo du SDK .NET de Vonage, vous devez fournir un identifiant d'application et sa clé privée. Alors que Vonage et OpenTok utilisent tous deux l'authentification par jeton, Vonage et OpenTok utilisent l'authentification par jeton. l'authentification par jeton, les jetons de Vonage sont JWTs tandis qu'OpenTok utilise un format personnalisé. Alors que vous peut fournir une clé d'API et un secret à l VonageClient Comme pour OpenTok, cette fonction est utilisée pour d'autres API de Vonage, et non pour la fonction Vidéo. Par conséquent, vous 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 votre la fonction vidéo est activée dans votre application. Cliquez 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 qu'une seule fois, car à chaque fois chaque fois que vous le faites, les informations d'identification changent et la paire de clés existante est cassée. 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 SA CLÉ PRIVÉE ! La est en fait le "mot de passe" de votre application et doit donc être traitée avec soin. Il est recommandé d'ajouter l'identifiant de votre application et la clé privée à votre fichier de configuration ou à KeyVault. Voir Plus d'informations ici pour savoir comment configurer le SDK.

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

Utilisation

Voir le README du SDK .NET pour les instructions d'installation.

Au lieu de cela, avec OpenTok :

var client = new OpenTok(apiKey, apiSecret);

Procédez comme suit :

// In your startup.cs or equivalent, register all Vonage services using your configuration
builder.Services.AddVonageClientScoped(builder.Configuration);

// In any component, inject our IVideoClient (preferred)
public WeatherForecastController(IVideoClient client)
{
    this.client = client;
}

// Or our VonageClient
public WeatherForecastController(VonageClient client)
{
    this.client = client.VideoClient;
}

Une fois que vous avez accès à un IVideoClient vous pouvez utiliser le Video API.

Pour des instructions d'utilisation plus détaillées, voir le Guide vidéo du SDK .NET Sever.

Changements de méthode

Certaines méthodes ont été modifiées entre le OpenTok et la mise en œuvre de l'API Video dans le Vonage SDK.

  • Toute opération renvoie un Result<T>indiquant si l'opération est un succès ou un échec. Pour plus de détails, n'hésitez pas à consulter la page Monades section.
  • La création d'une demande vous obligera à faire appel à un constructeur (ex : CreateSessionRequest.Build()...) - tous les constructeurs fournissent une API fluide pour vous guider à travers les paramètres obligatoires, tout en proposant des paramètres optionnels, avant de construire la requête en utilisant .Create().
  • Les méthodes étaient auparavant disponibles en version synchrone et asynchrone. Les versions synchrones ont été supprimées, ne laissant que la version asynchrone. Si vous souhaitez toujours exécuter cette méthode dans un processus synchrone, envisagez d'utiliser d'utiliser Task.Wait() ou Task.Result sur l'article retourné Task objet.
  • Certaines méthodes ont été renommées et/ou déplacées, par souci de clarté et/ou pour mieux refléter ce qu'elles font. Ces méthodes sont énumérées ci-dessous :
Nom de la méthode OpenTok Nom de la méthode vidéo Vonage
OpenTok.GenerateToken VideoTokenGenerator.GenerateToken
OpenTok.CreateSessionAsync VonageClient.SessionClient.CreateSessionAsync
OpenTok.StartArchiveAsync VonageClient.ArchiveClient.CreateArchiveAsync
OpenTok.StopArchiveAsync VonageClient.ArchiveClient.StopArchiveAsync
OpenTok.GetArchiveAsync VonageClient.ArchiveClient.GetArchiveAsync
OpenTok.DeleteArchiveAsync VonageClient.ArchiveClient.DeleteArchiveAsync
OpenTok.ListArchivesAsync VonageClient.ArchiveClient.GetArchivesAsync
OpenTok.AddStreamToArchiveAsync VonageClient.ArchiveClient.AddStreamAsync
OpenTok.RemoveStreamToArchiveAsync VonageClient.ArchiveClient.RemoveStreamAsync
OpenTok.GetStreamAsync VonageClient.BroadcastClient.GetStreamAsync
OpenTok.ListStreamsAsync VonageClient.BroadcastClient.GetStreamsAsync
OpenTok.ForceMuteStreamAsync VonageClient.ModerationClient.MuteStreamAsync
OpenTok.ForceMuteAllAsync VonageClient.ModerationClient.MuteStreamsAsync
OpenTok.ForceDisconnectAsync VonageClient.ModerationClient.DisconnectConnectionAsync
OpenTok.StartBroadcastAsync VonageClient.BroadcastClient.StartBroadcastAsync
OpenTok.StopBroadcastAsync VonageClient.BroadcastClient.StopBroadcastAsync
OpenTok.GetBroadcastAsync VonageClient.BroadcastClient.GetBroadcastAsync
OpenTok.SetBroadcastLayout VonageClient.BroadcastClient.ChangeBroadcastLayoutAsync
OpenTok.SignalAsync VonageClient.SignalingClient.SendSignalAsyncAsync
OpenTok.PlayDTMFAsync VonageClient.SipClient.PlayToneIntoCallAsync
OpenTok.DialAsync VonageClient.SipClient.InitiateCallAsynb

Stratégies de migration

Migration incrémentale

Nous recommandons une migration incrémentale, en passant d'un cas d'utilisation à un autre, en s'engageant à chaque fois que l'on se retrouve dans a " stable". Bien sûr, cela nécessiterait la coexistence temporaire d'OpenTok et de Vonage Video API.

Veuillez noter que, pendant ce processus incrémentiel, votre application dans son ensemble ne sera plus entièrement fonctionnelle car OpenTok et Vonage Video API sont deux systèmes totalement différents.

Vous devriez commencer par créer un "adaptateur vidéo" spécifique qui regrouperait toutes les interactions actuelles avec OpenTok. regrouper toutes les interactions actuelles avec OpenTok, puis remplacer une à une l'utilisation d'OpenTok par l'API Video de Vonage.

Une autre approche pourrait consister à dupliquer cet "adaptateur vidéo" dans un nouvel "adaptateur vidéo Vonage", dédié à cette migration, avant d'échanger ces deux adaptateurs ensemble. migration, avant d'échanger ces deux adaptateurs. Pour en savoir plus le Modèle de figue étrangleuse

Recommandations pour les tests

Des tests approfondis sont essentiels pour assurer une transition en douceur, tant pendant qu'après la migration. Cela comprend non seulement les tests unitaires, mais aussi les tests d'intégration et de régression. mais aussi des tests 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 pour s'assurer que vos tests 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é. problèmes que les tests n'auraient pas détectés. Vous pouvez même envisager de créer des tests d'équivalence. 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. Ces tests peuvent Ces tests peuvent ensuite être supprimés une fois que la transition est terminée et que la version OpenTok de votre application est supprimée.

Dépannage et assistance

FAQ

Comment extraire une valeur d'un Result<T>?

Elle est expliquée sur le site README du SDK.

Que se passe-t-il si je veux encore utiliser des exceptions ?

Elle est expliquée sur le site README du SDK.

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é Slackoù vous pouvez obtenir des réponses de la part 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 elle-même est support@api.vonage.com. Si vous trouvez un bogue avec le SDK, s'il vous plaît déposer un problème avec les étapes à suivre pour le reproduire sur GitHub.