Biblioteca de clientes da Passagem de Rede de Comunicação do Azure para .NET – versão 1.0.0
A Passagem de Rede de Comunicação do Azure permite conexões de alta largura de banda e baixa latência entre pares para cenários de comunicação em tempo real e cenários de transferência de dados, fornecendo acesso aos serviços STUN e TURN de baixo nível.
Código-fonte | Documentação do produto
Introdução
Instalar o pacote
Instale a biblioteca de clientes da Passagem de Rede de Comunicação do Azure para .NET com o NuGet:
dotnet add package Azure.Communication.NetworkTraversal --version 1.0.0
Pré-requisitos
Você precisa de uma assinatura do Azure e de um Recurso do Serviço de Comunicação para usar esse pacote.
Para criar um novo Serviço de Comunicação, você pode usar o Portal do Azure, o Azure PowerShell ou a biblioteca de clientes de gerenciamento do .NET.
Autenticar o cliente
O cliente de rede pode ser autenticado usando uma cadeia de conexão adquirida de um Recursos de Comunicação do Azure no Portal do Azure.
// Get a connection string to our Azure Communication resource.
var connectionString = "<connection_string>";
var client = new CommunicationRelayClient(connectionString);
Ou, como alternativa, usar o ponto de extremidade e a chave de acesso adquiridos de recursos de comunicação do Azure no Portal do Azure.
var endpoint = new Uri("https://my-resource.communication.azure.com");
var accessKey = "<access_key>";
var client = new CommunicationRelayClient(endpoint, new AzureKeyCredential(accessKey));
Os clientes também têm a opção de autenticar usando um token válido do Active Directory.
var endpoint = new Uri("https://my-resource.communication.azure.com");
TokenCredential tokenCredential = new DefaultAzureCredential();
var client = new CommunicationRelayClient(endpoint, tokenCredential);
Principais conceitos
CommunicationRelayClient
fornece as funcionalidades para obter URLs do servidor STUN/TURN e credenciais para acesso.
Acesso thread-safe
Garantimos que todos os métodos de instância do cliente sejam thread-safe e independentes uns dos outros (diretriz). Isso garante que a recomendação de reutilize instâncias de cliente seja sempre segura, mesmo entre threads.
Conceitos adicionais
Opções | do cliente Acessando a resposta | Operações de execução prolongada | Tratamento de falhas | Diagnostics | Zombando | Tempo de vida do cliente
Exemplos
Obtendo uma configuração de retransmissão para um usuário
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}");
}
Obtendo uma configuração de retransmissão para um usuário com um 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}");
}
Solução de problemas
TODO
Próximas etapas
TODO
Contribuição
Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite cla.microsoft.com.
Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.
Azure SDK for .NET