Guía de transición de Vonage Video 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.

Ámbito de aplicación

En este documento se da por hecho que estás utilizando, como mínimo, la 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 resultan útiles para ampliar información sobre este documento y como referencia para cualquier tema que no se trate en él:

Vonage

TokBox

Planificación de la migración

Antes de pasar de OpenTok a Vonage Video, debes tener en cuenta la envergadura de la tarea para establecer unas expectativas 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 archivo que contiene un 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 distintos, lo que 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.

Cambios y consideraciones clave

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.

Otro aspecto es el uso generalizado de Mónadas, frente a las excepciones tradicionales, para ofrecer un enfoque más funcional en la gestión de errores. Aunque las mónadas pueden resultar un concepto nuevo para los desarrolladores, aportan ventajas valiosas, como la transparencia y la previsibilidad, sin generar excepciones. Por ejemplo, al crear una nueva sesión se devolverá un 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 caso concreto, el Result contendrá un CreateSessionResponse si la operación se ha realizado correctamente, 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 en tu proyecto tanto las dependencias de OpenTok como las de Vonage; sin embargo, te recomendamos encarecidamente que esto se haga únicamente con fines de prueba y no para implementaciones en producción, ya que el SDK de OpenTok suele utilizar versiones antiguas de las dependencias, lo que podría provocar 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 JWT 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 utiliza para otras API de Vonage, no para vídeo. Por lo tanto, tendrás que crear una aplicación o utilizar una ya existente.

Puedes crear una aplicación desde el Panel de Vonage. Asegúrate de que tu aplicación tenga 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 es, en la práctica, la «contraseña» de tu aplicación, por lo que debes manejarla con cuidado. Se recomienda que añadas el identificador de tu aplicación y la clave privada a tu archivo de configuración o a KeyVault. Más información aquí sobre cómo configurar el SDK.

Para obtener más información sobre cómo configurar una aplicación, consulte la guía de introducción.

Uso

Véase el LÉEME del SDK de .NET para consultar las 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 tengas 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 de .NET Server.

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.
  • Al crear una solicitud, te verás obligado a utilizar un generador (p. ej.: CreateSessionRequest.Build()...) - Todos los generadores ofrecen una API intuitiva que te guía a través de los parámetros obligatorios y te sugiere los opcionales antes de generar la solicitud utilizando .Create().
  • Anteriormente, los métodos estaban disponibles tanto en versión síncrona como asíncrona. Las versiones síncronas se han eliminado, por lo que solo queda la asíncrona. Si aún así deseas ejecutarla en un proceso síncrono, te recomendamos que utilices Task.Wait() o Task.Result en el devuelto Task objeto.
  • Se han renombrado y/o reubicado algunos métodos, en aras de la claridad y/o para reflejar mejor la función de cada uno. A continuación se enumeran:
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.

Otra opción podría ser duplicar ese «adaptador de vídeo» para crear un nuevo «adaptador de vídeo Vonage», dedicado exclusivamente a esa migración, antes de intercambiar esos dos adaptadores. Para más información, consulta el Patrón de la higuera estranguladora

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.

Resolución de problemas y asistencia técnica

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 asistencia

Si necesitas ayuda general o quieres participar en debates sobre la transición a Vonage Video, echa un vistazo a el Canal #Video API en nuestro Slack de la comunidad, donde podrás obtener respuestas del personal de Vonage y de otros usuarios. También puedes ponerte en contacto con nosotros a través de X @VonageDev. La persona de contacto principal para cualquier problema relacionado 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.