Guía de transición de vídeo de Vonage para .NET
Transición de Opentok-.NET-SDK a vonage-dotnet-sdk
Introducción
Propósito
El objetivo de este documento es brindar un punto de partida para la transición de OpenTok .NET Server SDK a Vonage .NET Server SDK. Servidor SDK .NET de Vonage.
Alcance
Este documento presupone que está utilizando al menos la versión versión 3.14.0 o más tarde de la dirección SDK .NET de OpenTok.
La Video API se añadió al SDK de .NET Server SDK en la versión 6.14.0. Debe utilizar la última versión del SDK .NET de Vonage, que se puede encontrar en GitHub o NuGet.
Supuestos
Esta guía está pensada para que la siga un ingeniero de software profesional. Se asume al menos un nivel básico de competencia con .NET, herramientas comunes para desarrolladores .NET, sistemas de compilación y Git (u otro sistema de control de versiones). (u otro sistema de control de versiones). Deberá sentirse cómodo leyendo y escribiendo código .NET, gestionando las dependencias del proyecto, desplegando y ejecutando un proyecto .NET. NET. Una introducción al lenguaje .NET, la plataforma y las herramientas asociadas va mucho más allá del alcance de este documento.
Recursos
Los siguientes enlaces son útiles como lecturas complementarias de este documento y como referencia para todo lo que no se trate en él en este documento:
Vonage
- Documentación de vídeo de Vonage
- Especificación de la API de Video de Vonage
- Vonage .NET Server SDK Guía de uso en vídeo
- Código fuente de vídeo del SDK de servidor .NET de Vonage
- Depósito de GitHub del SDK de servidor .NET de Vonage
- Artefactos publicados de Vonage .NET Server SDK en NuGet
TokBox
- Referencia REST de la API de OpenTok
- Documentación del SDK del servidor .NET de OpenTok
- Código fuente del SDK del servidor .NET de OpenTok
- OpenTok .NET Server SDK GitHub repo
- Artefactos publicados del SDK del servidor .NET de OpenTok en NuGet
Planificación de la migración
Antes de realizar la transición de OpenTok a Vonage Video, debes tener en cuenta la magnitud de la tarea para establecer expectativas realistas. realistas.
Evaluar el impacto
La primera pregunta a responder es: ¿qué parte del código de tu aplicación depende del SDK de OpenTok?
Haz una lista de todos los archivos en los que se utiliza directamente el SDK.
Es decir, cualquier .cs que contiene un archivo using OpenTokSDK referencia.
Puede buscar en los archivos de su proyecto la declaración using OpenTokSDK utilizando un IDE (Ctrl+Mayús+F) o una
para identificar los archivos afectados.
Cronología
Account the time required to complete the transition. Esto dependerá de su experiencia con el proyecto y su impacto, así como de las pruebas. Es crucial contar con un buen conjunto de pruebas para poder verificar la equivalencia entre OpenTok y Vonage Video. El tiempo que llevará completar la transición es aproximadamente proporcional al número de lugares donde el SDK OpenTok se utiliza en su código, así como la variedad de características utilizadas. Algunas llamadas a la API serán más simples de reemplazar que otras.
Versionado
OpenTok y Vonage Video son dos productos diferentes - Esto hace imposible una migración progresiva.
Deberías crear una rama temporal en tu sistema de control de versiones para la transición, de forma que puedas hacer cambios gradualmente y con frecuencia sin romper el proyecto existente. También puede utilizar las pruebas del proyecto existente como un oráculo para la corrección. Lo ideal sería fusionar la rama de transición con la rama principal una vez que haya completado la conversión. completado la conversión.
Principales cambios y consideraciones
Nuevas funciones y normas
La Video API de Vonage tiene paridad de funciones con OpenTok, y el SDK .NET se mantiene activamente en línea con la especificación API API. Aún así, hay algunas diferencias importantes entre OpenTok y Vonage .NET SDK.
Una de ellas es basarse en modelos de datos adecuados en lugar de tipos primitivos. El objetivo es evitar "obsesión primitiva"dando más contexto de dominio a las las firmas de los métodos.
Otra es el uso extensivo de Mónadas,
en lugar de las excepciones tradicionales, para ofrecer un enfoque más funcional de la gestión de errores.
Aunque las mónadas pueden ser un concepto nuevo para los desarrolladores, aportan valiosas ventajas como la transparencia y la previsibilidad
sin excepciones.
Por ejemplo, la creación de una nueva sesión devolverá un valor Task<Result<CreateSessionResponse>> - a Result<T> representa el
resultado de una operación que puede fallar, y expone dos estados posibles: un Success o un Failure. En este
escenario, el Result contendrá un CreateSessionResponse si la operación ha tenido éxito, o un IResultFailure si
fallaba.
Actualización del paquete
En primer lugar, tendrás que instalar o actualizar el SDK .NET de Vonage en tu proyecto.
Puedes hacerlo utilizando el administrador de paquetes NuGet integrado en tu IDE (buscando Vonage), o ejecutando el siguiente comando
en su terminal: dotnet add package Vonage.
Para una migración gradual, puedes incluir las dependencias de OpenTok y Vonage en tu proyecto. recomendamos encarecidamente que esto debe ser sólo para pruebas en lugar de despliegues a la producción, como el OpenTok SDK tiende a utilizar versiones antiguas de las dependencias que pueden causar problemas en tiempo de ejecución.
Cambios en la autenticación
La autenticación tanto en OpenTok como en Vonage .NET Server SDK se maneja por ti, por lo que sólo tienes que proporcionar las credenciales de tu cuenta
una vez en el momento de la inicialización. La diferencia es que OpenTok requiere clave y secreto de API, mientras que para Video API
de Vonage .NET SDK, debes proporcionar un ID de aplicación y su clave privada. Si bien tanto Vonage como OpenTok utilizan
autenticación basada en tokens, los tokens de Vonage son JWTs mientras que OpenTok utiliza un formato personalizado. Mientras que
puede proporcionar una clave de API y un secreto a la VonageClient al igual que con OpenTok, esto se usa para otras API de Vonage, no para
Video. Por lo tanto, deberás crear o usar una aplicación existente.
Puede crear una aplicación desde la sección Panel de Vonage. Asegúrese de que su tiene activada la función de vídeo. Haga clic en "Editar" en una aplicación existente para ver sus capacidades y credenciales. A continuación, haga clic en "Generar clave pública y privada". Esto sólo debe hacerse una vez, ya que cada vez que lo hagas, las credenciales cambian y se romperá el par de claves existente. cada vez que lo hagas, las credenciales cambiarán y se romperá el par de claves existente. Al hacer clic, se descargará su clave privada. Coloca este archivo en un lugar seguro para realizar pruebas. NO COMPARTA NI EXPONGA NUNCA SU CLAVE PRIVADA. La clave privada de es efectivamente la "contraseña" de su aplicación, por lo que debe ser tratada con cuidado. Se recomienda que que añada su id de aplicación y clave privada a su archivo de configuración o KeyVault. Consulte más información en aquí sobre cómo configurar el SDK.
Para más información sobre la creación de una aplicación, consulte la Guía de introducción.
Utilización
Véase el LÉEME del SDK de .NET para obtener instrucciones de configuración.
En lugar de esto, con OpenTok:
var client = new OpenTok(apiKey, apiSecret);
Haz lo siguiente:
// 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;
}
Una vez que tenga acceso a un IVideoClient puede utilizar
el sitio Video API.
Para obtener instrucciones de uso más detalladas, consulte el sitio Guía en vídeo del SDK .NET Sever.
Cambios de método
Hay algunos cambios en los métodos entre el OpenTok SDK y la implementación de la Video API en el Vonage SDKs.
- Cualquier operación devolverá un
Result<T>que indica si la operación se ha realizado correctamente o no. Para más detalles, no dude en echar un vistazo a la Mónadas sección. - La creación de una solicitud le obligará a recurrir a un constructor (ej:
CreateSessionRequest.Build()...) - todos los constructores proporcionan una API fluida que le guía a través de los parámetros obligatorios y le propone los opcionales antes de crear la solicitud utilizando.Create(). - Los métodos solían estar disponibles en versiones síncrona y asíncrona. Las versiones síncronas se han
eliminado, dejando sólo la asíncrona. Si usted todavía desea ejecutar que en un proceso síncrono, por favor considere
utilizar
Task.Wait()oTask.Resulten la devueltaTaskobjeto. - Algunos métodos se han renombrado y/o desplazado, para mayor claridad y/o para reflejar mejor lo que hace el método. A continuación enumeran a continuación:
| Nombre del método OpenTok | Nombre del método de vídeo de 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 |
Estrategias de migración
Migración incremental
Nosotros recomendaríamos una migración incremental, pasando de un caso de uso a otro, comprometiéndose cada vez que acabe en a " estable". Por supuesto, esto requeriría que OpenTok y Vonage Video API coexistieran temporalmente.
Ten en cuenta que, durante dicho proceso incremental, tu aplicación en su conjunto dejaría de ser completamente funcional, ya que OpenTok y Vonage Video API son dos sistemas completamente diferentes.
Deberías comenzar por crear un 'Adaptador de video' específico que reagrupe todas las interacciones actuales con OpenTok, y luego reemplace una por una el uso de OpenTok con Video API de Vonage.
Otro enfoque podría ser duplicar ese "Adaptador de video" en un nuevo "Adaptador de video de Vonage", dedicado a esa antes de intercambiar ambos adaptadores. Ver más con en Patrón de higo estrangulador
Recomendaciones para las pruebas
Para que la transición sea fluida, tanto durante como después de la migración, es esencial realizar pruebas exhaustivas. Esto incluye no sólo pruebas sino también pruebas de integración y regresión. También merece la pena probar manualmente el flujo de la aplicación al menos una vez antes y después de la migración para asegurarse de que las pruebas automatizadas hacen lo que usted cree que hacen, o para detectar cualquier problema que las pruebas no hayan detectado. problemas que las pruebas no hayan detectado. Incluso puede plantearse crear pruebas de equivalencia. La idea es crear un que afirme que las versiones de OpenTok y Vonage Video de tu aplicación hacen lo mismo. Estas pruebas pueden descartarse una vez finalizada la transición y eliminada la versión OpenTok de la aplicación.
Solución de problemas y asistencia
Preguntas frecuentes
¿Cómo puedo extraer un valor de un Result<T>?
Se explica en el LÉAME del SDK.
¿Y si aún quiero utilizar excepciones?
Se explica en el LÉAME del SDK.
Canales de apoyo
Para obtener ayuda general y debatir sobre la transición a Vonage Video, consulta el sitio Canal #video-api en nuestra comunidad Slackdonde puedes obtener respuestas del personal de Vonage y de otros usuarios. También puedes ponerte en contacto con nosotros en X @VonageDev. El contacto principal para cualquier problema con la propia Video API es support@api.vonage.com. Si encuentra un error con el SDK, por favor Presentar un problema con los pasos para reproducir en GitHub.