Biblioteca de clientes das Salas de Comunicação do Azure para .NET – versão 1.0.0
Esse pacote contém um SDK do C# para o Serviço de Salas do Serviços de Comunicação do Azure. Serviços de Comunicação do Azure (ACS) Rooms é um conjunto de APIs, usado por aplicativos de servidor contoso para criar um espaço de conversa gerenciado pelo servidor com conjunto fixo de tempo de vida e participantes, definindo previamente regras da camada de servidor quem e quando podem se comunicar (como a criação de reunião agendada).
Com a versão de disponibilidade geral das Salas do ACS, a Contoso poderá:
- Create a meeting space with known time coordinates (validFrom/validUntil)
- Join voice/video calls within that meeting space using the ACS web calling SDK or native mobile calling SDKs
- Add participants to a room
- Assign pre-defined roles to room participants
O main cenários em que as Salas podem ser melhor usadas:
- Virtual Visits (e.g., telemedicine, remote financial advisor, virtual classroom, etc...)
- Virtual Events (e.g., live event, company all-hands, live concert, etc...)
Código-fonte | Documentação do produto | Amostras
Introdução
Instalar o pacote
Instale a biblioteca de clientes das Salas de Comunicação do Azure para .NET com o NuGet:
dotnet add package Azure.Communication.Rooms
Pré-requisitos
Você precisa de uma assinatura do Azure e 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.
Principais conceitos
RoomsClient
fornece a funcionalidade para criar sala, atualizar sala, obter sala, listar salas, excluir sala, adicionar participantes, atualizar participantes, remover participantes e listar participantes.
Como usar instruções
using Azure.Communication.Rooms
Autenticar o cliente
Os clientes de salas podem ser autenticados usando a cadeia de conexão adquirida de um Recurso de Comunicação do Azure no Portal do Azure.
var connectionString = Environment.GetEnvironmentVariable("connection_string") // Find your Communication Services resource in the Azure portal
RoomsClient client = new RoomsClient(connectionString);
Exemplos
Criar uma sala
Para criar uma sala, chame a CreateRoom
função ou CreateRoomAsync
de RoomsClient
.
Os validFrom
argumentos , validUntil
e participants
são todos opcionais. Se validFrom
e validUntil
não forem fornecidos, o padrão para validFrom
será a data e hora atual e o padrão para validUntil
será validFrom + 180 days
.
Ao definir RoomParticipant
, se a função não for especificada, ela será Attendee
por padrão.
O valor retornado é Response<CommunicationRoom>
que contém os detalhes da sala criada, bem como a status e os códigos de erro associados em caso de falha.
// Create communication users using the CommunicationIdentityClient
Response<CommunicationUserIdentifier> communicationUser1 = await communicationIdentityClient.CreateUserAsync();
Response<CommunicationUserIdentifier> communicationUser2 = await communicationIdentityClient.CreateUserAsync();
DateTimeOffset validFrom = DateTimeOffset.UtcNow;
DateTimeOffset validUntil = validFrom.AddDays(1);
RoomParticipant participant1 = new RoomParticipant(communicationUser1.Value); // If role is not provided, then it is set as Attendee by default
RoomParticipant participant2 = new RoomParticipant(communicationUser2.Value) { Role = ParticipantRole.Presenter};
List<RoomParticipant> invitedParticipants = new List<RoomParticipant>
{
participant1,
participant2
};
Response<CommunicationRoom> createRoomResponse = await roomsClient.CreateRoomAsync(validFrom, validUntil, invitedParticipants);
CommunicationRoom createCommunicationRoom = createRoomResponse.Value;
Atualizar uma sala
As validFrom
propriedades e validUntil
de uma sala criada podem ser atualizadas chamando a UpdateRoom
função ou UpdateRoomAsync
de RoomsClient
.
validUntil = validFrom.AddDays(30);
Response<CommunicationRoom> updateRoomResponse = await roomsClient.UpdateRoomAsync(createdRoomId, validFrom, validUntil);
CommunicationRoom updateCommunicationRoom = updateRoomResponse.Value;
Obter uma sala criada
Uma sala criada pode ser recuperada chamando a GetRoom
função ou GetRoomAsync
de RoomsClient
e passando o associado roomId
.
Response<CommunicationRoom> getRoomResponse = await roomsClient.GetRoomAsync(createdRoomId);
CommunicationRoom getCommunicationRoom = getRoomResponse.Value;
Obter todas as salas
Todas as salas válidas criadas em um recurso do ACS podem ser recuperadas chamando a GetRooms
função ou GetRoomsAsync
de RoomsClient
.
AsyncPageable<CommunicationRoom> allRooms = roomsClient.GetRoomsAsync();
await foreach (CommunicationRoom room in allRooms)
{
Console.WriteLine($"Room with id {room.Id} is valid from {room.ValidFrom} to {room.ValidUntil}.");
}
Excluir sala
Para excluir uma sala, chame a DeleteRoom
função ou DeleteRoomAsync
de RoomsClient.
Response deleteRoomResponse = await roomsClient.DeleteRoomAsync(createdRoomId);
Adicionar ou atualizar participantes em uma sala
Para adicionar novos participantes ou atualizar participantes existentes, chame a AddOrUpdateParticipants
função ou AddOrUpdateParticipantsAsync
de RoomsClient.
Response<CommunicationUserIdentifier> communicationUser3 = await communicationIdentityClient.CreateUserAsync();
RoomParticipant newParticipant = new RoomParticipant(communicationUser3.Value) { Role = ParticipantRole.Consumer };
// Previous snippet for create room added participant2 as Presenter
participant2 = new RoomParticipant(communicationUser2) { Role = ParticipantRole.Attendee };
List<RoomParticipant> participantsToAddOrUpdate = new List<RoomParticipant>
{
participant2, // participant2 updated from Presenter to Attendee
newParticipant, // newParticipant added to the room
};
Response addOrUpdateParticipantResponse = await roomsClient.AddOrUpdateParticipantsAsync(createdRoomId, participantsToAddOrUpdate);
Remover participantes em uma sala
Para remover participantes de uma sala, chame a RemoveParticipants
função ou RemoveParticipantsAsync
de RoomsClient.
List<CommunicationIdentifier> participantsToRemove = new List<CommunicationIdentifier>
{
communicationUser1,
communicationUser2
};
Response removeParticipantResponse = await roomsClient.RemoveParticipantsAsync(createdRoomId, participantsToRemove);
Obter participantes em uma sala
Para obter todos os participantes de uma sala, chame a GetParticipants
função ou GetParticipantsAsync
de RoomsClient.
O valor retornado é Pageable<RoomParticipant>
ou AsyncPageable<RoomParticipant>
que contém a lista paginada de participantes.
AsyncPageable<RoomParticipant> allParticipants = roomsClient.GetParticipantsAsync(createdRoomId);
await foreach (RoomParticipant participant in allParticipants)
{
Console.WriteLine($" Participant with id {participant.CommunicationIdentifier.RawId} is a {participant.Role}");
}
Solução de problemas
Respostas de serviço
Um RequestFailedException
é gerado como uma resposta de serviço para solicitações malsucedidas. A exceção contém informações sobre qual código de resposta foi retornado do serviço.
try
{
CommunicationIdentityClient communicationIdentityClient = CreateInstrumentedCommunicationIdentityClient();
Response<CommunicationUserIdentifier> communicationUser1 = await communicationIdentityClient.CreateUserAsync();
Response<CommunicationUserIdentifier> communicationUser2 = await communicationIdentityClient.CreateUserAsync();
DateTimeOffset validFrom = DateTimeOffset.UtcNow;
DateTimeOffset validUntil = validFrom.AddDays(1);
List<RoomParticipant> createRoomParticipants = new List<RoomParticipant>();
RoomParticipant participant1 = new RoomParticipant(communicationUser1.Value) { Role = ParticipantRole.Presenter };
RoomParticipant participant2 = new RoomParticipant(communicationUser2.Value) { Role = ParticipantRole.Attendee };
Response<CommunicationRoom> createRoomResponse = await roomsClient.CreateRoomAsync(validFrom, validUntil, createRoomParticipants);
CommunicationRoom createRoomResult = createRoomResponse.Value;
}
catch (RequestFailedException ex)
{
Console.WriteLine(ex.Message);
}
Próximas etapas
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.
Atualizar os links de código de exemplo depois que o sdk for publicado
Azure SDK for .NET