Szybki start: tworzenie zasobu pokoju i zarządzanie nim
Ten przewodnik Szybki start ułatwia rozpoczęcie pracy z usługami Azure Communication Services Rooms. A room
to przestrzeń komunikacji zarządzanej przez serwer dla znanego, stałego zestawu uczestników do współpracy w celu wstępnie określonego czasu trwania. Dokumentacja koncepcyjna pomieszczeń zawiera więcej szczegółów i przypadków użycia dla programu rooms
.
Model obiektów
W poniższej tabeli wymieniono główne właściwości room
obiektów:
Nazwa/nazwisko | opis |
---|---|
roomId |
Unikatowy room identyfikator. |
validFrom |
Najwcześniejszy czas, którego room można użyć. |
validUntil |
Ostatni raz room można użyć. |
pstnDialOutEnabled |
Włącz lub wyłącz wybieranie numeru PSTN w pokoju. |
participants |
Lista uczestników do elementu room . Określony jako CommunicationUserIdentifier . |
roleType |
Rola uczestnika pokoju. Może to być wartość Presenter , Attendee lub Consumer . |
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aktywny zasób usług komunikacyjnych i parametry połączenia. Utwórz zasób usług komunikacyjnych.
- Zainstaluj interfejs wiersza polecenia platformy Azure.
- Parametry połączenia można pobrać z witryny Azure Portal, klikając klucze w ustawieniach.
Konfigurowanie
Dodawanie rozszerzenia
Dodaj rozszerzenie Azure Communication Services dla interfejsu wiersza polecenia platformy az extension
Azure przy użyciu polecenia .
az extension add --name communication
Logowanie do interfejsu wiersza polecenia platformy Azure
Musisz zalogować się do interfejsu wiersza polecenia platformy Azure. Możesz się zalogować, uruchamiając az login
polecenie z poziomu terminalu i podając poświadczenia.
Przechowywanie parametry połączenia w zmiennej środowiskowej
Zmienną AZURE_COMMUNICATION_CONNECTION_STRING
środowiskową można skonfigurować tak, aby korzystała z operacji kluczy interfejsu wiersza polecenia platformy Azure bez konieczności przekazywania --connection_string
w parametry połączenia. Aby skonfigurować zmienną środowiskową, otwórz okno konsoli i wybierz system operacyjny z poniższych kart. Zastąp <connectionString>
element rzeczywistym parametry połączenia.
setx AZURE_COMMUNICATION_CONNECTION_STRING "<connectionString>"
Po dodaniu zmiennej środowiskowej może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które muszą odczytać zmienną środowiskową, w tym okno konsoli. Jeśli na przykład używasz programu Visual Studio jako edytora, uruchom ponownie program Visual Studio przed uruchomieniem przykładu.
Operacje
Tworzenie pokoju
Użyj polecenia , rooms create
aby utworzyć pomieszczenie.
az communication rooms create --presenter-participants "<participantId>" --consumer-participants "<participantId>" --attendee-participant "<participantId>" --valid-from "<valid-from>" --valid-until "<valid-until>" --pstn-dial-out-enabled "<pstn-dial-out-enabled>" --connection-string "<connection-string>"
- Opcjonalnie określ
<participantId>
typ uczestnika jako uczestników prezenterów, uczestników-konsumentów lub uczestników. Jeśli nie określisz wartości, wartość domyślna będzie pusta. - Zastąp
<connection-string>
element parametry połączenia usług Azure Communication Services. - Opcjonalnie określ
<valid-from>
znacznik czasu otwarcia pomieszczenia do łączenia w formacie ISO8601, np. 2022-07-14T10:21. - Opcjonalnie określ
<valid-until>
znacznik czasu, gdy nie można już dołączyć pomieszczenia w formacie ISO8601, np. 2022-07-14T10:21. - Użyj
<pstn-dial-out-enabled>
opcji opcjonalnie, ustawiając tę flagę ("Prawda" lub "Fałsz"), aby włączyć lub wyłączyć wybieranie numeru PSTN dla pokoju. Domyślnie ta flaga jest ustawiona na "Fałsz" podczas tworzenia pokoju.
Jeśli parametry połączenia zostały zapisane w zmiennych środowiskowych zgodnie z powyższym opisem, nie trzeba ich przekazywać do polecenia .
az communication rooms create
Włączanie możliwości wybierania numeru PSTN dla pokoju
Podczas wybierania numeru PSTN można włączyć rooms create
, definiując --pstn-dial-out-enabled
parametr jako "True". Tę funkcję można również zmodyfikować podczas rooms update
określania parametru --pstn-dial-out-enabled
.
az communication rooms create --pstn-dial-out-enabled "<pstn-dial-out-enabled>" --connection-string "<connection-string>"
az communication rooms update --pstn-dial-out-enabled "<pstn-dial-out-enabled>" --room "<roomId>"
- Aby włączyć lub wyłączyć wybieranie numeru PSTN dla pokoju, ustaw
<pstn-dial-out-enabled>
flagę ("Prawda" lub "Fałsz").
Pobierz pokoje
Polecenie rooms get
zwraca atrybuty istniejącego pokoju.
az communication rooms get --room "<roomId>"
- Zastąp
<roomId>
element identyfikatorem pokoju.
Aktualizowanie przedziału czasu pokoju
Znacznik czasu pokoju można zaktualizować. Przed wywołaniem room update
polecenia upewnij się, że masz nowe pomieszczenie z prawidłowym przedziałem czasu.
az communication rooms update --valid-from "<valid-from>" --valid-until "<valid-until>" --pstn-dial-out-enabled "<pstn-dial-out-enabled>" --room "<roomId>"
- Zastąp
<valid-from>
znacznikiem czasu w formacie ISO8601, np. 2022-07-14T10:21, aby określić, kiedy pokój jest otwarty do dołączenia. Należy używać razem z--valid-until
. - Zastąp
<valid-until>
znacznikiem czasu w formacie ISO8601, np. 2022-07-14T10:21, aby określić, kiedy pomieszczenie nie może być już przyłączone. Należy używać razem z--valid-from
. - Zamień
<pstn-dial-out-enabled>
tę flagę ("Prawda" lub "Fałsz"), aby włączyć lub wyłączyć wybieranie numeru PSTN dla pokoju. Należy używać razem z--pstn-dial-out-enabled
. - Zastąp
<roomId>
element identyfikatorem pokoju.
Wyświetl listę wszystkich aktywnych pomieszczeń
Polecenie rooms list
zwraca wszystkie aktywne pokoje należące do zasobu usług Azure Communication Services.
az communication rooms list
Dodawanie nowych uczestników lub aktualizowanie istniejących uczestników
Podczas tworzenia pokoju możesz zaktualizować pokój, dodając nowego uczestnika lub aktualizując istniejącego uczestnika. Przed wywołaniem room participant add-or-update
polecenia upewnij się, że masz nowego użytkownika.
Użyj polecenia , identity user create
aby utworzyć nowego uczestnika zidentyfikowanego przez participantId
.
az communication identity user create
Dodaj użytkownika jako uczestnika do pokoju.
az communication rooms participant add-or-update --attendee-participant "<participantId>" --room "<roomId>"
- Zastąp
<participantId>
element identyfikatorem uczestnika.<participantId>
Jeśli obiekt nie istnieje w pokoju, uczestnik zostanie dodany do pokoju jako rola uczestnika. W przeciwnym razie rola uczestnika zostanie zaktualizowana do roli uczestnika. - Zastąp
<roomId>
element identyfikatorem pokoju.
Pobieranie listy uczestników w pokoju
az communication rooms participant get --room "<roomId>"
- Zastąp
<roomId>
element identyfikatorem pokoju.
Usuwanie uczestnika z pokoju
Uczestnik pokoju można usunąć z pokoju za pomocą polecenia rooms participant -remove
.
az communication rooms participant remove --room "<roomId>" --participants "<participant1>" "<participant2>" "<participant3>"
- Zastąp
<roomId>
element identyfikatorem pokoju. - Zastąp ciąg
<participant1>
,<participant2>
<participant3>
identyfikatorami użytkownika uzyskanymi wcześniej przy użyciu uruchomionegoidentity user create
polecenia.
Usuwanie pokoju
Podobnie jak w przypadku tworzenia pokoju, można również usunąć pokój.
Użyj room delete
polecenia , aby usunąć istniejący pokój.
az communication rooms delete --room "<roomId>"
- Zastąp
<roomId>
element identyfikatorem pokoju.
Ten przewodnik Szybki start ułatwia rozpoczęcie pracy z usługami Azure Communication Services Rooms. A room
to przestrzeń komunikacji zarządzanej przez serwer dla znanego, stałego zestawu uczestników do współpracy w celu wstępnie określonego czasu trwania. Dokumentacja koncepcyjna pomieszczeń zawiera więcej szczegółów i przypadków użycia dla programu rooms
.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aktywny zasób usług komunikacyjnych i parametry połączenia. Utwórz zasób usług komunikacyjnych.
- Najnowsza wersja biblioteki klienta .NET Core dla systemu operacyjnego.
Przykładowy kod
Możesz przejrzeć i pobrać przykładowy kod dla tego przewodnika Szybki start w witrynie GitHub.
Konfigurowanie
Tworzenie nowej aplikacji w języku C#
W oknie konsoli (takim jak cmd, PowerShell lub Bash) użyj dotnet new
polecenia , aby utworzyć nową aplikację konsolową o nazwie RoomsQuickstart
. To polecenie tworzy prosty projekt języka C# "Hello World" z jednym plikiem źródłowym: Program.cs.
dotnet new console -o RoomsQuickstart
Zmień katalog na nowo utworzony folder aplikacji i użyj dotnet build
polecenia , aby skompilować aplikację.
cd RoomsQuickstart
dotnet build
Instalowanie pakietu
Zainstaluj bibliotekę klienta usługi Azure Communication Rooms dla platformy .NET za pomocą narzędzia [NuGet][https://www.nuget.org/]:
dotnet add package Azure.Communication.Rooms
Należy użyć biblioteki klienta usługi Azure Communication Rooms dla platformy .NET w wersji 1.1.0 lub nowszej.
Konfigurowanie struktury aplikacji
Program.cs
W pliku dodaj następujący kod, aby zaimportować wymagane przestrzenie nazw i utworzyć podstawową strukturę programu.
using System;
using Azure;
using Azure.Core;
using Azure.Communication.Rooms;
namespace RoomsQuickstart
{
class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
Console.WriteLine("Azure Communication Services - Rooms Quickstart");
// Quickstart code goes here
}
}
}
Inicjowanie klienta pokoju
Utwórz nowy RoomsClient
obiekt, który będzie używany do tworzenia nowych rooms
właściwości i cyklu życia oraz zarządzania nimi. Parametry połączenia Communications Service
będą używane do uwierzytelniania żądania. Aby uzyskać więcej informacji na temat parametry połączenia, zobacz tę stronę.
// Find your Communication Services resource in the Azure portal
var connectionString = "<connection_string>";
RoomsClient roomsClient = new RoomsClient(connectionString);
Tworzenie pokoju
Konfigurowanie uczestników pokoju
Aby skonfigurować, kto może dołączyć do pokoju, musisz mieć listę tożsamości tych użytkowników. Aby utworzyć użytkowników i wystawiać tokeny dostępu, możesz postępować zgodnie z instrukcjami podanymi tutaj . Alternatywnie, jeśli chcesz utworzyć użytkowników na żądanie, możesz je utworzyć przy użyciu .CommunicationIdentityClient
Pokoje ACS obecnie obsługują uczestnika pokoju typu CommunicationUserIdentifier tylko, używając innych typów CommunicationIdentity, spowoduje błąd w czasie wykonywania.
Aby użyć programu CommunicationIdentityClient
, zainstaluj następujący pakiet:
dotnet add package Azure.Communication.Identity
Ponadto zaimportuj przestrzeń nazw pakietu w górnej części Program.cs
pliku:
using Azure.Communication.Identity;
Teraz można zainicjować element CommunicationIdentityClient
i użyć go do utworzenia użytkowników:
// Create identities for users who will join the room
CommunicationIdentityClient identityClient = new CommunicationIdentityClient(connectionString);
CommunicationUserIdentifier user1 = identityClient.CreateUser();
CommunicationUserIdentifier user2 = identityClient.CreateUser();
Następnie utwórz listę uczestników pokoju, odwołując się do tych użytkowników:
List<RoomParticipant> participants = new List<RoomParticipant>()
{
new RoomParticipant(user1) { Role = ParticipantRole.Presenter },
new RoomParticipant(user2) // The default participant role is ParticipantRole.Attendee
};
Inicjowanie pokoju
Utwórz nowy room
element przy użyciu zdefiniowanego participants
we fragmencie kodu powyżej:
// Create a room
DateTimeOffset validFrom = DateTimeOffset.UtcNow;
DateTimeOffset validUntil = validFrom.AddDays(1);
CancellationToken cancellationToken = new CancellationTokenSource().Token;
CommunicationRoom createdRoom = await roomsClient.CreateRoomAsync(validFrom, validUntil, participants, cancellationToken);
// CreateRoom or CreateRoomAsync methods can take CreateRoomOptions type as an input parameter.
bool pstnDialOutEnabled = false;
CreateRoomOptions createRoomOptions = new CreateRoomOptions()
{
ValidFrom = validFrom,
ValidUntil = validUntil,
PstnDialOutEnabled = pstnDialOutEnabled,
Participants = participants
};
createdRoom = await roomsClient.CreateRoomAsync(createRoomOptions, cancellationToken);
string roomId = createdRoom.Id;
Console.WriteLine("\nCreated room with id: " + roomId);
Ponieważ rooms
są jednostkami po stronie serwera, warto śledzić i utrwalać roomId
wybrany nośnik magazynu. Możesz odwołać roomId
się do elementu , aby wyświetlić lub zaktualizować właściwości room
obiektu.
Włączanie możliwości wybierania numeru PSTN dla pokoju
Każdy room
z nich ma domyślnie wyłączone wybieranie numeru PSTN. Numer PSTN można włączyć dla room
elementu podczas tworzenia, definiując pstnDialOutEnabled
parametr jako true. Tę funkcję można również zmodyfikować przez room
wysłanie żądania aktualizacji dla parametru pstnDialOutEnabled
.
// Create a room
CancellationToken cancellationToken = new CancellationTokenSource().Token;
// CreateRoom or CreateRoomAsync methods to create a room with PSTN dial out capability
bool pstnDialOutEnabled = true;
CreateRoomOptions createRoomOptions = new CreateRoomOptions()
{
PstnDialOutEnabled = pstnDialOutEnabled,
};
CommunicationRoom createdRoom = await roomsClient.CreateRoomAsync(createRoomOptions, cancellationToken);
Console.WriteLine("\nCreated a room with PSTN dial out enabled: " + createdRoom.PstnDialOutEnabled);
// UpdateRoom or UpdateRoomAsync methods can take UpdateRoomOptions to enable or disable PSTN dial out capability
pstnDialOutEnabled = false;
UpdateRoomOptions updateRoomOptions = new UpdateRoomOptions()
{
PstnDialOutEnabled = pstnDialOutEnabled,
};
CommunicationRoom updatedRoom = await roomsClient.UpdateRoomAsync(roomId, updateRoomOptions, cancellationToken);
Console.WriteLine("\nUpdated a room with PSTN dial out enabled: " + updatedRoom.PstnDialOutEnabled);
Pobieranie właściwości istniejącego pokoju
Pobierz szczegóły istniejącego room
obiektu, odwołując się do elementu roomId
:
// Retrieve the room with corresponding ID
CommunicationRoom room = await roomsClient.GetRoomAsync(roomId);
Console.WriteLine("\nRetrieved room with id: " + room.Id);
Aktualizowanie okresu istnienia pokoju
Okres istnienia elementu room
można zmodyfikować, wydając żądanie aktualizacji parametrów ValidFrom
i ValidUntil
. Pokój może być ważny przez maksymalnie sześć miesięcy.
// Update room lifetime
DateTimeOffset updatedValidFrom = DateTimeOffset.UtcNow;
DateTimeOffset updatedValidUntil = DateTimeOffset.UtcNow.AddDays(10);
CommunicationRoom updatedRoom = await roomsClient.UpdateRoomAsync(roomId, updatedValidFrom, updatedValidUntil, cancellationToken);
// UpdateRoom or UpdateRoomAsync methods can take UpdateRoomOptions type as an input parameter.
bool pstnDialOutEnabled = true;
UpdateRoomOptions updateRoomOptions = new UpdateRoomOptions()
{
ValidFrom = validFrom,
ValidUntil = validUntil,
PstnDialOutEnabled = pstnDialOutEnabled,
};
updatedRoom = await roomsClient.UpdateRoomAsync(roomId, updateRoomOptions, cancellationToken);
Console.WriteLine("\nUpdated room with validFrom: " + updatedRoom.ValidFrom + ", validUntil: " + updatedRoom.ValidUntil + " and pstnDialOutEnabled: " + updatedRoom.PstnDialOutEnabled);
Wyświetl listę wszystkich aktywnych pomieszczeń
Aby pobrać wszystkie aktywne pokoje, użyj GetRoomsAsync
metody uwidocznionej na kliencie.
// List all active rooms
AsyncPageable<CommunicationRoom> allRooms = roomsClient.GetRoomsAsync();
await foreach (CommunicationRoom currentRoom in allRooms)
{
Console.WriteLine("\nFirst room id in all active rooms: " + currentRoom.Id);
break;
}
Dodawanie nowych uczestników lub aktualizowanie istniejących uczestników
Aby dodać nowych uczestników do room
klasy , użyj AddParticipantsAsync
metody uwidocznionej na kliencie.
List<RoomParticipant> addOrUpdateParticipants = new List<RoomParticipant>();
// Update participant2 from Attendee to Consumer
RoomParticipant participant2 = new RoomParticipant(user2) { Role = ParticipantRole.Consumer };
// Add participant3
CommunicationUserIdentifier user3 = identityClient.CreateUser();
RoomParticipant participant3 = new RoomParticipant(user3) { Role = ParticipantRole.Attendee };
addOrUpdateParticipants.Add(participant2);
addOrUpdateParticipants.Add(participant3);
Response addOrUpdateParticipantsResponse = await roomsClient.AddOrUpdateParticipantsAsync(roomId, addOrUpdateParticipants);
Console.WriteLine("\nAdded or updated participants to room");
Uczestnicy, którzy zostali dodani do osoby uprawnionej room
do dołączenia do połączeń. Uczestnicy, którzy zostali zaktualizowani, zobaczą swój nowy role
w wywołaniu.
Pobieranie listy uczestników
Pobierz listę uczestników dla istniejącej, room
odwołując się do elementu roomId
:
// Get list of participants in room
AsyncPageable<RoomParticipant> existingParticipants = roomsClient.GetParticipantsAsync(roomId);
Console.WriteLine("\nRetrieved participants from room: ");
await foreach (RoomParticipant participant in existingParticipants)
{
Console.WriteLine($"{participant.CommunicationIdentifier.ToString()}, {participant.Role.ToString()}");
}
Usuwanie uczestników
Aby usunąć uczestnika z obiektu room
i odwołać dostęp, użyj RemoveParticipantsAsync
metody .
// Remove user from room
List<CommunicationIdentifier> removeParticipants = new List<CommunicationIdentifier>();
removeParticipants.Add(user2);
Response removeParticipantsResponse = await roomsClient.RemoveParticipantsAsync(roomId, removeParticipants);
Console.WriteLine("\nRemoved participants from room");
Usuwanie pokoju
Jeśli chcesz rozwiązać istniejący room
problem, możesz wysłać jawne żądanie usunięcia. Wszystkie rooms
i skojarzone z nimi zasoby są automatycznie usuwane na końcu ich ważności oraz okres prolongaty.
// Deletes the specified room
Response deleteRoomResponse = await roomsClient.DeleteRoomAsync(roomId);
Console.WriteLine("\nDeleted room with id: " + roomId);
Uruchamianie kodu
Aby uruchomić kod, upewnij się, że znajdujesz się w katalogu, w którym Program.cs
znajduje się plik.
dotnet run
Oczekiwane dane wyjściowe opisują każdą ukończoną akcję:
Azure Communication Services - Rooms Quickstart
Created a room with id: 99445276259151407
Retrieved room with id: 99445276259151407
Updated room with validFrom: 2023-05-11T22:11:46.784Z, validUntil: 2023-05-21T22:16:46.784Z and pstnDialOutEnabled: true
First room id in all active rooms: 99445276259151407
Added or updated participants to room
Retrieved participants from room:
8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-ac89-7c76-35f3-343a0d00e901, Presenter
8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-f00d-aa4b-0cf9-9c3a0d00543e, Consumer
8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-f00d-aaf2-0cf9-9c3a0d00543f, Attendee
Removed participants from room
Deleted room with id: 99445276259151407
Dokumentacja referencyjna
Przeczytaj o pełnym zestawie możliwości pomieszczeń usług Azure Communication Services z dokumentacji zestawu SDK platformy .NET lub dokumentacji interfejsu API REST.
Ten przewodnik Szybki start ułatwia rozpoczęcie pracy z usługami Azure Communication Services Rooms. A room
to przestrzeń komunikacji zarządzanej przez serwer dla znanego, stałego zestawu uczestników do współpracy w celu wstępnie określonego czasu trwania. Dokumentacja koncepcyjna pomieszczeń zawiera więcej szczegółów i przypadków użycia dla programu rooms
.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aktywny zasób usług komunikacyjnych i parametry połączenia. Utwórz zasób usług komunikacyjnych.
- Zestaw Java Development Kit (JDK) w wersji 8 lub nowszej.
- Apache Maven
Przykładowy kod
Możesz przejrzeć i pobrać przykładowy kod dla tego przewodnika Szybki start w witrynie GitHub.
Konfigurowanie
Tworzenie nowej aplikacji Java
W oknie konsoli (takim jak cmd, PowerShell lub Bash) użyj mvn
polecenia , aby utworzyć nową aplikację konsolową o nazwie rooms-quickstart
. To polecenie tworzy prosty projekt Java "Hello World" z jednym plikiem źródłowym: App.java.
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Uwzględnij pakiet
Musisz użyć biblioteki klienta usługi Azure Communication Rooms dla języka Java w wersji 1.1.0 lub nowszej.
Uwzględnij plik BOM
Dołącz element azure-sdk-bom
do projektu, aby mieć zależność od wersji ogólnie dostępnej biblioteki. W poniższym fragmencie kodu zastąp symbol zastępczy {bom_version_to_target} numerem wersji.
Aby dowiedzieć się więcej na temat modelu BOM, zobacz plik readme zestawu Azure SDK BOM.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version_to_target}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
a następnie uwzględnij bezpośrednią zależność w sekcji zależności bez tagu wersji.
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-rooms</artifactId>
</dependency>
</dependencies>
Uwzględnij zależność bezpośrednią
Jeśli chcesz podjąć zależność od określonej wersji biblioteki, która nie znajduje się w modelu BOM, dodaj bezpośrednią zależność do projektu w następujący sposób.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-rooms</artifactId>
<version>1.0.0-beta.1</version>
</dependency>
Konfigurowanie platformy aplikacji
Przejdź do katalogu /src/main/java/com/communication/quickstart i otwórz App.java
plik. Dodaj następujący kod:
package com.communication.rooms.quickstart;
import com.azure.communication.common.*;
import com.azure.communication.identity.*;
import com.azure.communication.identity.models.*;
import com.azure.core.credential.*;
import com.azure.communication.rooms.*;
import java.io.IOException;
import java.time.*;
import java.util.*;
public class App
{
public static void main( String[] args ) throws IOException
{
System.out.println("Azure Communication Services - Rooms Quickstart");
// Quickstart code goes here
}
}
Inicjowanie klienta pokoju
Utwórz nowy RoomsClient
obiekt, który będzie używany do tworzenia nowych rooms
właściwości i cyklu życia oraz zarządzania nimi. Parametry połączenia Communications Service
będą używane do uwierzytelniania żądania. Aby uzyskać więcej informacji na temat parametry połączenia, zobacz tę stronę.
// Initialize the rooms client
// Find your Communication Services resource in the Azure portal
String connectionString = "<connection string>";
RoomsClient roomsClient = new RoomsClientBuilder().connectionString(connectionString).buildClient();
Tworzenie pokoju
Konfigurowanie uczestników pokoju
Aby skonfigurować, kto może dołączyć do pokoju, musisz mieć listę tożsamości tych użytkowników. Aby utworzyć użytkowników i wystawiać tokeny dostępu, możesz postępować zgodnie z instrukcjami podanymi tutaj . Alternatywnie, jeśli chcesz utworzyć użytkowników na żądanie, możesz je utworzyć przy użyciu .CommunicationIdentityClient
Pokoje ACS obecnie obsługują uczestnika pokoju typu CommunicationUserIdentifier tylko, używając innych typów CommunicationIdentity, spowoduje błąd w czasie wykonywania.
Aby użyć polecenia CommunicationIdentityClient
, dodaj następujący pakiet:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-identity</artifactId>
</dependency>
Zaimportuj pakiet na wierzchu pliku App.java
:
import com.azure.communication.identity.CommunicationIdentityClient;
import com.azure.communication.identity.CommunicationIdentityClientBuilder;
Teraz można zainicjować element CommunicationIdentityClient
i użyć go do utworzenia użytkowników:
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.connectionString(connectionString)
.buildClient();
CommunicationUserIdentifier user1 = communicationClient.createUser();
CommunicationUserIdentifier user2 = communicationClient.createUser();
CommunicationUserIdentifier user3 = communicationClient.createUser();
Następnie utwórz listę uczestników pokoju, odwołując się do tych użytkowników:
//The default participant role is ParticipantRole.Attendee
RoomParticipant participant_1 = new RoomParticipant(user1);
RoomParticipant participant_2 = new RoomParticipant(user2);
RoomParticipant participant_3 = new RoomParticipant(user3);
List<RoomParticipant> roomParticipants = new ArrayList<RoomParticipant>();
roomParticipants.add(participant_1);
roomParticipants.add(participant_2.setRole(ParticipantRole.CONSUMER));
Inicjowanie pokoju
Utwórz nowy room
element przy użyciu zdefiniowanego roomParticipants
we fragmencie kodu powyżej:
OffsetDateTime validFrom = OffsetDateTime.now();
OffsetDateTime validUntil = validFrom.plusDays(30);
boolean pstnDialOutEnabled = false;
CreateRoomOptions createRoomOptions = new CreateRoomOptions()
.setValidFrom(validFrom)
.setValidUntil(validUntil)
.setPstnDialOutEnabled(pstnDialOutEnabled)
.setParticipants(roomParticipants);
CommunicationRoom roomCreated = roomsClient.createRoom(createRoomOptions);
System.out.println("\nCreated a room with id: " + roomCreated.getRoomId());
Ponieważ rooms
są jednostkami po stronie serwera, warto śledzić i utrwalać roomId
wybrany nośnik magazynu. Możesz odwołać roomId
się do elementu , aby wyświetlić lub zaktualizować właściwości room
obiektu.
Włączanie możliwości wybierania numeru PSTN dla pokoju
Każdy room
z nich ma domyślnie wyłączone wybieranie numeru PSTN. Numer PSTN można włączyć dla room
elementu podczas tworzenia, definiując pstnDialOutEnabled
parametr jako true. Tę funkcję można również zmodyfikować przez room
wysłanie żądania aktualizacji dla parametru pstnDialOutEnabled
.
boolean pstnDialOutEnabled = true;
// Create a room with PSTN dial out capability
CreateRoomOptions createRoomOptions = new CreateRoomOptions()
.setPstnDialOutEnabled(pstnDialOutEnabled)
CommunicationRoom roomCreated = roomsClient.createRoom(createRoomOptions);
System.out.println("\nCreated a room with PSTN dial out enabled: " + roomCreated.getPstnDialOutEnabled());
// Update a room to enable or disable PSTN dial out capability
pstnDialOutEnabled = false;
UpdateRoomOptions updateRoomOptions = new UpdateRoomOptions()
.setPstnDialOutEnabled(pstnDialOutEnabled);
CommunicationRoom roomUpdated = roomsClient.updateRoom(roomId, updateRoomOptions);
System.out.println("\nUpdated a room with PSTN dial out enabled: " + roomUpdated.getPstnDialOutEnabled());
Pobieranie właściwości istniejącego pokoju
Pobierz szczegóły istniejącego room
obiektu, odwołując się do elementu roomId
:
// Retrieve the room with corresponding ID
CommunicationRoom roomResult = roomsClient.getRoom(roomId);
System.out.println("Retrieved room with id: " + roomResult.getRoomId());
Aktualizowanie okresu istnienia pokoju
Okres istnienia elementu room
można zmodyfikować, wydając żądanie aktualizacji parametrów ValidFrom
i ValidUntil
. Pokój może być ważny przez maksymalnie sześć miesięcy.
OffsetDateTime validFrom = OffsetDateTime.now().plusDays(1);
OffsetDateTime validUntil = validFrom.plusDays(1);
boolean pstnDialOutEnabled = true;
UpdateRoomOptions updateRoomOptions = new UpdateRoomOptions()
.setValidFrom(validFrom)
.setValidUntil(validUntil)
.setPstnDialOutEnabled(pstnDialOutEnabled);
CommunicationRoom roomResult = roomsClient.updateRoom(roomId, updateRoomOptions);
System.out.println("Updated room with validFrom: " + roomResult.getValidFrom() + ", validUntil: " + roomResult.getValidUntil() + " and pstnDialOutEnabled: " + roomResult.getPstnDialOutEnabled());
Dodawanie lub aktualizowanie uczestników
Aby dodać lub zaktualizować uczestników do room
klasy , użyj addOrUpdateParticipants
metody uwidocznionej na kliencie.
List<RoomParticipant> participantsToAddAOrUpdate = new ArrayList<>();
// Adding new participant
participantsToAddAOrUpdate.add(participant_3.setRole(ParticipantRole.CONSUMER));
// Updating current participant
participantsToAddAOrUpdate.add(participant_2.setRole(ParticipantRole.PRESENTER));
AddOrUpdateParticipantsResult addOrUpdateParticipantsResult = roomsClient.addOrUpdateParticipants(roomId, participantsToAddAOrUpdate);
System.out.println("Participant(s) added/updated");
Uczestnicy, którzy zostali dodani do osoby uprawnionej room
do dołączenia do połączeń.
Pobieranie listy uczestników
Pobierz listę uczestników dla istniejącej, room
odwołując się do elementu roomId
:
// Get list of participants
try {
PagedIterable<RoomParticipant> participants = roomsClient.listParticipants(roomId);
System.out.println("Participants:/n");
for (RoomParticipant participant : participants) {
System.out.println(participant.getCommunicationIdentifier().getRawId() + " (" + participant.getRole() + ")");
}
} catch (Exception ex) {
System.out.println(ex);
}
Usuwanie uczestników
Aby usunąć uczestnika z obiektu room
i odwołać dostęp, użyj removeParticipants
metody .
// Remove a participant from the room
List<CommunicationIdentifier> participantsToRemove = new ArrayList<>();
participantsToRemove.add(participant_3.getCommunicationIdentifier());
RemoveParticipantsResult removeParticipantsResult = roomsClient.removeParticipants(roomId,participantsToRemove);
System.out.println("Participant(s) removed");
Wyświetl listę wszystkich aktywnych pomieszczeń
Pobierz wszystkie aktywne rooms
w ramach zasobu usług Azure Communication Services.
try {
Iterable<PagedResponse<CommunicationRoom>> roomPages = roomsClient.listRooms().iterableByPage();
System.out.println("Listing all the rooms IDs in the first two pages of the list of rooms:");
int count = 0;
for (PagedResponse<CommunicationRoom> page : roomPages) {
for (CommunicationRoom room : page.getElements()) {
System.out.println("\n" + room.getRoomId());
}
count++;
if (count >= 2) {
break;
}
}
} catch (Exception ex) {
System.out.println(ex);
}
Usuwanie pokoju
Jeśli chcesz rozwiązać istniejący room
problem, możesz wysłać jawne żądanie usunięcia. Wszystkie rooms
i skojarzone z nimi zasoby są automatycznie usuwane na końcu ich ważności oraz okres prolongaty.
// Deletes the specified room
roomsClient.deleteRoomWithResponse(roomId, Context.NONE);
System.out.println("\nDeleted the room with ID: " + roomId);
Uruchamianie kodu
Aby uruchomić kod, przejdź do katalogu zawierającego pom.xml
plik i skompiluj program.
mvn compile
Następnie skompiluj pakiet:
mvn package
Wykonaj aplikację.
mvn exec:java -D"exec.mainClass"="com.communication.rooms.quickstart" -D"exec.cleanupDaemonThreads"="false"
Oczekiwane dane wyjściowe opisują każdą ukończoną akcję:
Azure Communication Services - Rooms Quickstart
Created a room with id: 99445276259151407
Retrieved room with id: 99445276259151407
Updated room with validFrom: 2023-05-11T22:11:46.784Z, validUntil: 2023-05-11T22:16:46.784Z and pstnDialOutEnabled: true
Participant(s) added/updated
Participants:
8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-ac89-7c76-35f3-343a0d00e901 (Attendee)
8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-ac89-7c76-35f3-343a0d00e902 (Consumer)
Participant(s) removed
Listing all the rooms IDs in the first two pages of the list of rooms:
99445276259151407
99445276259151408
99445276259151409
Deleted the room with ID: 99445276259151407
Dokumentacja referencyjna
Zapoznaj się z pełnym zestawem funkcji pomieszczeń usług Azure Communication Services z dokumentacji zestawu JAVA SDK lub dokumentacji interfejsu API REST.
Ten przewodnik Szybki start ułatwia rozpoczęcie pracy z usługami Azure Communication Services Rooms. A room
to przestrzeń komunikacji zarządzanej przez serwer dla znanego, stałego zestawu uczestników do współpracy w celu wstępnie określonego czasu trwania. Dokumentacja koncepcyjna pomieszczeń zawiera więcej szczegółów i przypadków użycia dla programu rooms
.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aktywny zasób usług komunikacyjnych i parametry połączenia. Utwórz zasób usług komunikacyjnych.
- Środowisko Python w wersji 3.7 lub nowszej dla systemu operacyjnego.
Przykładowy kod
Możesz przejrzeć i pobrać przykładowy kod dla tego przewodnika Szybki start w witrynie GitHub.
Konfigurowanie
Tworzenie nowej aplikacji w języku Python
W oknie terminalu lub konsoli utwórz nowy folder dla aplikacji i przejdź do niego.
mkdir acs-rooms-quickstart
cd acs-rooms-quickstart
Instalowanie pakietu
Należy użyć biblioteki klienta usługi Azure Communication Rooms dla języka Python w wersji 1.1.0 lub nowszej.
W wierszu polecenia konsoli przejdź do katalogu zawierającego plik rooms.py, a następnie wykonaj następujące polecenie:
pip install azure-communication-rooms
Konfigurowanie struktury aplikacji
Utwórz nowy plik o nazwie rooms-quickstart.py
i dodaj podstawową strukturę programu.
import os
from datetime import datetime, timedelta
from azure.core.exceptions import HttpResponseError
from azure.communication.rooms import (
RoomsClient,
RoomParticipant,
ParticipantRole
)
class RoomsQuickstart(object):
print("Azure Communication Services - Rooms Quickstart")
#room method implementations goes here
if __name__ == '__main__':
rooms = RoomsQuickstart()
Inicjowanie klienta pokoju
Utwórz nowy RoomsClient
obiekt, który będzie używany do tworzenia nowych rooms
właściwości i cyklu życia oraz zarządzania nimi. Parametry połączenia Communications Service
będą używane do uwierzytelniania żądania. Aby uzyskać więcej informacji na temat parametry połączenia, zobacz tę stronę.
#Find your Communication Services resource in the Azure portal
connection_string = '<connection_string>'
rooms_client = RoomsClient.from_connection_string(connection_string)
Tworzenie pokoju
Konfigurowanie uczestników pokoju
Aby skonfigurować, kto może dołączyć do pokoju, musisz mieć listę tożsamości tych użytkowników. Aby utworzyć użytkowników i wystawiać tokeny dostępu, możesz postępować zgodnie z instrukcjami podanymi tutaj . Alternatywnie, jeśli chcesz utworzyć użytkowników na żądanie, możesz je utworzyć przy użyciu .CommunicationIdentityClient
Pokoje ACS obecnie obsługują uczestnika pokoju typu CommunicationUserIdentifier tylko, używając innych typów CommunicationIdentity, spowoduje błąd w czasie wykonywania.
Aby użyć programu CommunicationIdentityClient
, zainstaluj następujący pakiet:
pip install azure-communication-identity
Ponadto zaimportuj przestrzeń nazw pakietu w górnej części rooms-quickstart.py
pliku:
from azure.communication.identity import (
CommunicationIdentityClient
)
Teraz można zainicjować element CommunicationIdentityClient
i użyć go do utworzenia użytkowników:
# Create identities for users who will join the room
identity_client = CommunicationIdentityClient.from_connection_string(connection_string)
user1 = identity_client.create_user()
user2 = identity_client.create_user()
user3 = identity_client.create_user()
Następnie utwórz listę uczestników pokoju, odwołując się do tych użytkowników:
participant_1 = RoomParticipant(communication_identifier=user1, role=ParticipantRole.PRESENTER)
participant_2 = RoomParticipant(communication_identifier=user2, role=ParticipantRole.CONSUMER)
participants = [participant_1, participant_2]
Inicjowanie pokoju
Utwórz nowy room
element przy użyciu zdefiniowanego participants
we fragmencie kodu powyżej:
# Create a room
valid_from = datetime.now()
valid_until = valid_from + timedelta(weeks=4)
pstn_dial_out_enabled = False
try:
create_room = rooms_client.create_room(
valid_from=valid_from,
valid_until=valid_until,
pstn_dial_out_enabled=pstn_dial_out_enabled,
participants=participants
)
print("\nCreated a room with id: " + create_room.id)
except HttpResponseError as ex:
print(ex)
Ponieważ rooms
są jednostkami po stronie serwera, warto śledzić i utrwalać room.id
wybrany nośnik magazynu. Możesz odwołać id
się do elementu , aby wyświetlić lub zaktualizować właściwości room
obiektu.
Włączanie możliwości wybierania numeru PSTN dla pokoju
Każdy room
z nich ma domyślnie wyłączone wybieranie numeru PSTN. Numer PSTN można włączyć dla room
elementu podczas tworzenia, definiując pstn_dial_out_enabled
parametr jako true. Tę funkcję można również zmodyfikować przez room
wysłanie żądania aktualizacji dla parametru pstn_dial_out_enabled
.
# Create a room with PSTN dial out capability
pstn_dial_out_enabled = True
create_room = rooms_client.create_room(pstn_dial_out_enabled=pstn_dial_out_enabled)
print("\nCreated room with pstn_dial_out_enabled: " + updated_room.pstn_dial_out_enabled)
# Update a room to enable or disable PSTN dial out capability
pstn_dial_out_enabled= False
updated_room = rooms_client.update_room(room_id=room_id, pstn_dial_out_enabled=pstn_dial_out_enabled)
print("\nUpdated room with pstn_dial_out_enabled: " + updated_room.pstn_dial_out_enabled)
Pobieranie właściwości istniejącego pokoju
Pobierz szczegóły istniejącego room
obiektu, odwołując się do elementu id
:
# Retrieves the room with corresponding ID
room_id = create_room.id
try:
get_room = rooms_client.get_room(room_id=room_id)
print("\nRetrieved room with id: ", get_room.id)
except HttpResponseError as ex:
print(ex)
Aktualizowanie okresu istnienia pokoju
Okres istnienia elementu room
można zmodyfikować, wydając żądanie aktualizacji parametrów valid_from
i valid_until
. Pokój może być ważny przez maksymalnie sześć miesięcy.
# Update the lifetime of a room
valid_from = datetime.now()
valid_until = valid_from + timedelta(weeks=7)
pstn_dial_out_enabled=True
try:
updated_room = rooms_client.update_room(room_id=room_id, valid_from=valid_from, valid_until=valid_until, pstn_dial_out_enabled=pstn_dial_out_enabled)
print("\nUpdated room with validFrom: " + updated_room.valid_from + ", validUntil: " + updated_room.valid_until + " and pstn_dial_out_enabled: " + updated_room.pstn_dial_out_enabled)
except HttpResponseError as ex:
print(ex)
Wyświetl listę wszystkich aktywnych pomieszczeń
Aby pobrać wszystkie aktywne pokoje utworzone w ramach zasobu, użyj list_rooms
metody uwidocznionej na kliencie.
# List all active rooms
try:
rooms = rooms_client.list_rooms()
count = 0
for room in rooms:
if count == 1:
break
print("\nPrinting the first room in list"
"\nRoom Id: " + room.id +
"\nCreated date time: " + str(room.created_at) +
"\nValid From: " + str(room.valid_from) +
"\nValid Until: " + str(room.valid_until) +
"\nPSTN Dial-Out Enabled: " + str(room.pstn_dial_out_enabled))
count += 1
except HttpResponseError as ex:
print(ex)
Dodawanie lub aktualizowanie uczestników
Aby dodać nowych uczestników lub zaktualizować istniejących uczestników w obiekcie room
, użyj add_or_update_participants
metody uwidocznionej na kliencie.
# Add or update participants in a room
try:
# Update existing user2 from consumer to attendee
participants = []
participants.append(RoomParticipant(communication_identifier=user2, role=ParticipantRole.ATTENDEE))
# Add new participant user3
participants.append(RoomParticipant(communication_identifier=user3, role=ParticipantRole.CONSUMER))
rooms_client.add_or_update_participants(room_id=room_id, participants=participants)
print("\nAdd or update participants in room")
except HttpResponseError as ex:
print('Error in adding or updating participants to room.', ex)
Uczestnicy, którzy zostali dodani do osoby uprawnionej room
do dołączenia do połączeń.
Wyświetlanie listy uczestników w pokoju
Pobierz listę uczestników dla istniejącej, room
odwołując się do elementu room_id
:
# Get list of participants in room
try:
participants = rooms_client.list_participants(room_id)
print('\nParticipants in Room Id :', room_id)
for p in participants:
print(p.communication_identifier.properties['id'], p.role)
except HttpResponseError as ex:
print(ex)
Usuwanie uczestników
Aby usunąć uczestnika z obiektu room
i odwołać dostęp, użyj remove_participants
metody .
# Remove Participants
try:
participants = [user2]
rooms_client.remove_participants(room_id=room_id, participants=participants)
print("\nRemoved participants from room")
except HttpResponseError as ex:
print(ex)
Usuwanie pokoju
Jeśli chcesz rozwiązać istniejący room
problem, możesz wysłać jawne żądanie usunięcia. Wszystkie rooms
i skojarzone z nimi zasoby są automatycznie usuwane na końcu ich ważności oraz okres prolongaty.
# Delete Room
rooms_client.delete_room(room_id=room_id)
print("\nDeleted room with id: " + room_id)
Uruchamianie kodu
Aby uruchomić kod, upewnij się, że znajdujesz się w katalogu, w którym rooms-quickstart.py
znajduje się plik.
python rooms-quickstart.py
Oczekiwane dane wyjściowe opisują każdą ukończoną akcję:
Azure Communication Services - Rooms Quickstart
Created a room with id: 99445276259151407
Retrieved room with id: 99445276259151407
Updated room with validFrom: 2023-05-03T00:00:00+00:00, validUntil: 2023-06-23T00:00:00+00:00 and pstn_dial_out_enabled: True
Printing the first room in list
Room Id: 99445276259151407
Created date time: 2023-05-03T00:00:00+00:00
Valid From: 2023-05-03T00:00:00+00:00
Valid Until: 2023-06-23T00:00:00+00:00
PSTN Dial-Out Enabled: True
Add or update participants in room
Participants in Room Id : 99445276259151407
8:acs:42a0ff0c-356d-4487-a288-ad0aad95d504_00000018-ef00-6042-a166-563a0d0051c1 Presenter
8:acs:42a0ff0c-356d-4487-a288-ad0aad95d504_00000018-ef00-6136-a166-563a0d0051c2 Consumer
8:acs:42a0ff0c-356d-4487-a288-ad0aad95d504_00000018-ef00-61fd-a166-563a0d0051c3 Attendee
Removed participants from room
Deleted room with id: 99445276259151407
Dokumentacja referencyjna
Przeczytaj o pełnym zestawie możliwości pomieszczeń usług Azure Communication Services z dokumentacji zestawu SDK języka Python lub dokumentacji interfejsu API REST.
Ten przewodnik Szybki start ułatwia rozpoczęcie pracy z usługami Azure Communication Services Rooms. A room
to przestrzeń komunikacji zarządzanej przez serwer dla znanego, stałego zestawu uczestników do współpracy w celu wstępnie określonego czasu trwania. Dokumentacja koncepcyjna pomieszczeń zawiera więcej szczegółów i przypadków użycia dla programu rooms
.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aktywny zasób usług komunikacyjnych i parametry połączenia. Utwórz zasób usług komunikacyjnych.
- Najnowsze wersje programu Node.js Active LTS i Maintenance LTS.
Przykładowy kod
Możesz przejrzeć i pobrać przykładowy kod dla tego przewodnika Szybki start w witrynie GitHub.
Konfigurowanie
Tworzenie nowej aplikacji internetowej
W oknie terminalu lub konsoli utwórz nowy folder dla aplikacji i przejdź do niego.
mkdir acs-rooms-quickstart && cd acs-rooms-quickstart
Uruchom polecenie npm init
, aby utworzyć plik package.json z ustawieniami domyślnymi.
npm init -y
Utwórz nowy plik index.js
, w którym zostanie dodany kod tego przewodnika Szybki start.
Instalowanie pakietów
Musisz użyć biblioteki klienta usługi Azure Communication Rooms dla języka JavaScript w wersji 1.1.0 lub nowszej.
Użyj polecenia , npm install
aby zainstalować poniższe zestawy SDK usług Communication Services dla języka JavaScript.
npm install @azure/communication-rooms --save
Konfigurowanie struktury aplikacji
index.js
W pliku dodaj następujący kod. Dodamy kod dla przewodnika Szybki start w main
funkcji.
const { RoomsClient } = require('@azure/communication-rooms');
const main = async () => {
console.log("Azure Communication Services - Rooms Quickstart")
// Quickstart code goes here
};
main().catch((error) => {
console.log("Encountered an error");
console.log(error);
})
Inicjowanie klienta pokoju
Utwórz nowy RoomsClient
obiekt, który będzie używany do tworzenia nowych rooms
właściwości i cyklu życia oraz zarządzania nimi. Parametry połączenia Communications Service
będą używane do uwierzytelniania żądania. Aby uzyskać więcej informacji na temat parametry połączenia, zobacz tę stronę.
Dodaj następujący kod wewnątrz index.js
main
funkcji.
const connectionString =
process.env["COMMUNICATION_CONNECTION_STRING"] ||
"endpoint=https://<resource-name>.communication.azure.com/;<access-key>";
// create RoomsClient
const roomsClient = new RoomsClient(connectionString);
Tworzenie pokoju
Konfigurowanie uczestników pokoju
Aby skonfigurować, kto może dołączyć do pokoju, musisz mieć listę tożsamości tych użytkowników. Aby utworzyć użytkowników i wystawiać tokeny dostępu, możesz postępować zgodnie z instrukcjami podanymi tutaj . Alternatywnie, jeśli chcesz utworzyć użytkowników na żądanie, możesz je utworzyć przy użyciu .CommunicationIdentityClient
Pokoje ACS obecnie obsługują uczestnika pokoju typu CommunicationUserIdentifier tylko, używając innych typów CommunicationIdentity, spowoduje błąd w czasie wykonywania.
Aby użyć elementu CommunicationIdentityClient, zainstaluj następujący pakiet npm:
npm install @azure/communication-identity --save
Dodaj również następujący wymagany pakiet w górnej części index.js
pliku:
const { CommunicationIdentityClient } = require('@azure/communication-identity');
Teraz można zainicjować element CommunicationIdentityClient
i użyć go do utworzenia użytkowników:
// create identities for users
const identityClient = new CommunicationIdentityClient(connectionString);
const user1 = await identityClient.createUserAndToken(["voip"]);
const user2 = await identityClient.createUserAndToken(["voip"]);
Następnie utwórz listę uczestników pokoju, odwołując się do tych użytkowników:
const participants = [
{
id: user1.user,
role: "Presenter",
},
{
id: user2.user,
role: "Consumer",
}
]
Inicjowanie pokoju
Utwórz nowy room
element przy użyciu zdefiniowanego participants
we fragmencie kodu powyżej:
// Create a room
var validFrom = new Date(Date.now());
var validUntil = new Date(validFrom.getTime() + 60 * 60 * 1000);
var pstnDialOutEnabled = false;
const createRoomOptions = {
validFrom,
validUntil,
pstnDialOutEnabled,
participants
};
const createRoom = await roomsClient.createRoom(createRoomOptions);
const roomId = createRoom.id;
console.log("\nCreated a room with id: ", roomId);
Ponieważ rooms
są jednostkami po stronie serwera, warto śledzić i utrwalać roomId
wybrany nośnik magazynu. Możesz odwołać roomId
się do elementu , aby wyświetlić lub zaktualizować właściwości room
obiektu.
Włączanie możliwości wybierania numeru PSTN dla pokoju
Każdy room
z nich ma domyślnie wyłączone wybieranie numeru PSTN. Numer PSTN można włączyć dla room
elementu podczas tworzenia, definiując pstnDialOutEnabled
parametr jako true. Tę funkcję można również zmodyfikować przez room
wysłanie żądania aktualizacji dla parametru pstnDialOutEnabled
.
// Create a room with PSTN dial out capability
var pstnDialOutEnabled = true;
const createRoomOptions = {
pstnDialOutEnabled,
};
const createRoom = await roomsClient.createRoom(createRoomOptions);
console.log("\nCreated a room with PSTN dial out enabled: ", createRoom.pstnDialOutEnabled);
// Update a room to enable or disable PSTN dial out capability
pstnDialOutEnabled = false;
const updateRoomOptions = {
pstnDialOutEnabled,
};
const updateRoom = await roomsClient.updateRoom(roomId, updateRoomOptions);
console.log("\nUpdated a room with PSTN dial out enabled: ", updateRoom.pstnDialOutEnabled);
Pobieranie właściwości istniejącego pokoju
Pobierz szczegóły istniejącego room
obiektu, odwołując się do elementu roomId
:
// Retrieve the room with corresponding ID
const getRoom = await roomsClient.getRoom(roomId);
console.log("\nRetrieved room with id: ", getRoom.id);
Aktualizowanie okresu istnienia pokoju
Okres istnienia elementu room
można zmodyfikować, wydając żądanie aktualizacji parametrów validFrom
i validUntil
. Pokój może być ważny przez maksymalnie sześć miesięcy.
// Update room lifetime
validFrom.setTime(validUntil.getTime());
validUntil.setTime(validFrom.getTime() + 5 * 60 * 1000);
pstnDialOutEnabled = true;
// request payload to update a room
const updateRoomOptions = {
validFrom,
validUntil,
pstnDialOutEnabled,
};
const updateRoom = await roomsClient.updateRoom(roomId, updateRoomOptions);
console.log("\nUpdated room with validFrom: ", updateRoom.validFrom, ", validUntil: ", updateRoom.validUntil, " and pstnDialOutEnabled: ", updateRoom.pstnDialOutEnabled);
Pobieranie listy pomieszczeń
Pobierz listę pomieszczeń przy użyciu listRooms
metody :
const roomsList = await roomsClient.listRooms();
console.log("\nRetrieved list of rooms; printing first room:");
for await (const currentRoom of roomsList) {
// access room data here
console.log(currentRoom);
break;
}
Dodawanie lub aktualizowanie uczestników
Aby dodać nowych uczestników do room
klasy , użyj addOrUpdateParticipants
metody uwidocznionej na kliencie. Ta metoda zaktualizuje również uczestnika, jeśli już istnieje w pokoju.
// Add and update participants
// request payload to add and update participants
const addOUpdateParticipantsList = [
{
id: user1.user,
role: "Presenter",
},
{
id: user2.user,
role: "Consumer",
}
]
// add user2 to the room and update user1 to Presenter role
await roomsClient.addOrUpdateParticipants(roomId, addOUpdateParticipantsList);
console.log("\nAdded and updated participants in the room");
Uczestnicy, którzy zostali dodani do osoby uprawnionej room
do dołączenia do połączeń.
Pobieranie listy uczestników
Pobierz listę uczestników dla istniejącej, room
odwołując się do elementu roomId
:
const participantsList = await roomsClient.listParticipants(roomId);
console.log("\nRetrieved participants for room:");
for await (const participant of participantsList) {
// access participant data here
console.log(participant);
}
Usuwanie uczestników
Aby usunąć uczestnika z obiektu room
i odwołać dostęp, użyj removeParticipants
metody .
// Remove both users from the room
const removeParticipantsList = [user1.user, user2.user]
// remove both users from the room with the request payload
await roomsClient.removeParticipants(roomId, removeParticipantsList);
console.log("\nRemoved participants from room");
Usuwanie pokoju
Jeśli chcesz rozwiązać istniejący room
problem, możesz wysłać jawne żądanie usunięcia. Wszystkie rooms
i skojarzone z nimi zasoby są automatycznie usuwane na końcu ich ważności oraz okres prolongaty.
// Deletes the specified room
await roomsClient.deleteRoom(roomId);
console.log("\nDeleted room with id: ", roomId)
Uruchamianie kodu
Aby uruchomić kod, upewnij się, że znajdujesz się w katalogu, w którym index.js
znajduje się plik.
node index.js
Oczekiwane dane wyjściowe opisują każdą ukończoną akcję:
Azure Communication Services - Rooms QuickStart
Created a room with id: 99445276259151407
Retrieved room with id: 99445276259151407
Updated room with validFrom: 2023-05-11T22:11:46.784Z, validUntil: 2023-05-11T22:16:46.784Z and pstnDialOutEnabled: true
Retrieved list of rooms; printing first room:
{
id: "99445276259151407",
createdAt: "2023-05-11T22:11:50.784Z",
validFrom: "2023-05-11T22:11:46.784Z",
validUntil: "2023-05-11T22:16:46.784Z"
}
Added and updated participants in the room
Retrieved participants for room:
{
id: {
kind: 'communicationUser',
communicationUserId: '8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-ac89-7c76-35f3-343a0d00e901'
},
role: 'Presenter'
}
{
id: {
kind: 'communicationUser',
communicationUserId: '8:acs:b6aada1f-0b1d-47ac-866f-91aae00a1d01_00000018-ac89-7ccc-35f3-343a0d00e902'
},
role: 'Consumer'
}
Removed participants from room
Deleted room with id: 99445276259151407
Dokumentacja referencyjna
Zapoznaj się z pełnym zestawem funkcji pomieszczeń usług Azure Communication Services z dokumentacji zestawu SDK języka JavaScript lub dokumentacji interfejsu API REST.
Następne kroki
Po utworzeniu i skonfigurowaniu pokoju możesz dowiedzieć się, jak dołączyć do pokoju .
W tej sekcji przedstawiono, jak wykonać następujące działania:
- Tworzenie nowego pokoju
- Pobieranie właściwości pokoju
- Aktualizowanie właściwości pokoju
- Usuwanie pokoju
Możesz również wykonać następujące czynności:
- Dowiedz się więcej na temat koncepcji pomieszczeń
- Dowiedz się więcej o pojęciach dotyczących połączeń głosowych i wideo
- Przeglądanie przykładów usług Azure Communication Services