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
- 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 del SDK para servidores .NET de Vonage publicados 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 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()oTask.Resulten el devueltoTaskobjeto. - 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.