Compartir a través de


Biblioteca cliente de Azure Communication Network Traversal para .NET: versión 1.0.0

Azure Communication Network Traversal permite conexiones de ancho de banda alto y baja latencia entre pares para escenarios de comunicación en tiempo real y escenarios de transferencia de datos al proporcionar acceso a los servicios STUN y TURN de bajo nivel.

Código | fuente Documentación del producto

Introducción

Instalar el paquete

Instale la biblioteca cliente de Azure Communication Network Traversal para .NET con NuGet:

dotnet add package Azure.Communication.NetworkTraversal --version 1.0.0

Requisitos previos

Necesita una suscripción de Azure y un recurso de Communication Service para usar este paquete.

Para crear un servicio de comunicación, puede usar Azure Portal, el Azure PowerShell o la biblioteca cliente de administración de .NET.

Autenticar el cliente

El cliente de red se puede autenticar mediante una cadena de conexión adquirida desde un recurso de comunicación de Azure en Azure Portal.

// Get a connection string to our Azure Communication resource.
var connectionString = "<connection_string>";
var client = new CommunicationRelayClient(connectionString);

También puede usar el punto de conexión y la clave de acceso adquiridas desde recursos de comunicación de Azure en Azure Portal.

var endpoint = new Uri("https://my-resource.communication.azure.com");
var accessKey = "<access_key>";
var client = new CommunicationRelayClient(endpoint, new AzureKeyCredential(accessKey));

Los clientes también tienen la opción de autenticarse mediante un token de Active Directory válido.

var endpoint = new Uri("https://my-resource.communication.azure.com");
TokenCredential tokenCredential = new DefaultAzureCredential();
var client = new CommunicationRelayClient(endpoint, tokenCredential);

Conceptos clave

CommunicationRelayClient proporciona las funcionalidades para obtener las direcciones URL y las credenciales del servidor STUN/TURN para el acceso.

Seguridad para subprocesos

Garantizamos que todos los métodos de instancia de cliente sean seguros para subprocesos e independientes entre sí (guía). Esto garantiza que la recomendación de reutilizar instancias de cliente siempre es segura, incluso entre subprocesos.

Conceptos adicionales

Opciones | de cliente Acceso a la respuesta | Operaciones | de larga duraciónControl de errores | Diagnóstico | Burla | Duración del cliente

Ejemplos

Obtención de una configuración de retransmisión para un usuario

Response<CommunicationRelayConfiguration> relayConfiguration = await client.GetRelayConfigurationAsync();
DateTimeOffset turnTokenExpiresOn = relayConfiguration.Value.ExpiresOn;
IList<CommunicationIceServer> iceServers = relayConfiguration.Value.IceServers;
Console.WriteLine($"Expires On: {turnTokenExpiresOn}");
foreach (CommunicationIceServer iceServer in iceServers)
{
    foreach (string url in iceServer.Urls)
    {
        Console.WriteLine($"ICE Server Url: {url}");
    }
    Console.WriteLine($"ICE Server Username: {iceServer.Username}");
    Console.WriteLine($"ICE Server Credential: {iceServer.Credential}");
    Console.WriteLine($"ICE Server RouteType: {iceServer.RouteType}");
}

Obtención de una configuración de retransmisión para un usuario con un routeType especificado

Response<CommunicationRelayConfiguration> relayConfiguration = await client.GetRelayConfigurationAsync(user,RouteType.Nearest);
DateTimeOffset turnTokenExpiresOn = relayConfiguration.Value.ExpiresOn;
IList<CommunicationIceServer> iceServers = relayConfiguration.Value.IceServers;
Console.WriteLine($"Expires On: {turnTokenExpiresOn}");
foreach (CommunicationIceServer iceServer in iceServers)
{
    foreach (string url in iceServer.Urls)
    {
        Console.WriteLine($"ICE Server Url: {url}");
    }
    Console.WriteLine($"ICE Server Username: {iceServer.Username}");
    Console.WriteLine($"ICE Server Credential: {iceServer.Credential}");
    Console.WriteLine($"ICE Server Route Type: {iceServer.RouteType}");
}

Solución de problemas

TODO

Pasos siguientes

TODO

Contribuciones

Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para obtener más información, visite cla.microsoft.com.

Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.