Hızlı Başlangıç: Oda kaynağı oluşturma ve yönetme
Bu hızlı başlangıç, Azure İletişim Hizmetleri Odaları kullanmaya başlamanıza yardımcı olur. A room
, bilinen, sabit bir katılımcı kümesinin önceden belirlenmiş bir süre boyunca işbirliği yapmasına yönelik sunucu tarafından yönetilen bir iletişim alanıdır. Odalar kavramsal belgeleri için rooms
diğer ayrıntıları ve kullanım örneklerini kapsar.
Nesne modeli
Aşağıdaki tabloda nesnelerin ana özellikleri room
listelenir:
Veri Akışı Adı | Açıklama |
---|---|
roomId |
Benzersiz room tanımlayıcı. |
validFrom |
en erken bir room kez kullanılabilir. |
validUntil |
Bir'in kullanılabilmesi için en son zaman room . |
pstnDialOutEnabled |
Bir odadaki PSTN numarasını aramayı etkinleştirin veya devre dışı bırakın. |
participants |
katılımcılarının room listesi. olarak CommunicationUserIdentifier belirtilir. |
roleType |
Oda katılımcısının rolü. , Attendee veya Consumer olabilirPresenter . |
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Etkin bir İletişim Hizmetleri kaynağı ve bağlantı dizesi. İletişim Hizmetleri kaynağı oluşturun.
- Azure CLI'yı yükleyin.
- Ayarlardaki anahtarlara tıklayarak Azure portalından bağlantı dizesi alabilirsiniz.
Ayarlama
Uzantıyı ekleme
komutunu kullanarak Azure CLI için Azure İletişim Hizmetleri uzantısını az extension
ekleyin.
az extension add --name communication
Azure CLI'da oturum açma
Azure CLI'da oturum açmanız gerekir. Terminalden komutunu çalıştırarak az login
ve kimlik bilgilerinizi sağlayarak oturum açabilirsiniz.
bağlantı dizesi bir ortam değişkeninde depolama
ortam değişkeniniAZURE_COMMUNICATION_CONNECTION_STRING
, bağlantı dizesi geçirmek için kullanmak zorunda kalmadan Azure CLI anahtarları işlemlerini kullanacak --connection_string
şekilde yapılandırabilirsiniz. Ortam değişkenini yapılandırmak için bir konsol penceresi açın ve aşağıdaki sekmelerden işletim sisteminizi seçin. değerini gerçek bağlantı dizesi ile değiştirin<connectionString>
.
setx AZURE_COMMUNICATION_CONNECTION_STRING "<connectionString>"
Ortam değişkenini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenini okuması gereken tüm çalışan programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız, örneği çalıştırmadan önce Visual Studio'yu yeniden başlatın.
Operations
Oda oluşturma
rooms create
Oda oluşturmak için komutunu kullanın.
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>"
- Katılımcı türünü sunucu-katılımcı, tüketici-katılımcı veya katılımcı-katılımcı olarak belirtmek için isteğe bağlı olarak kullanın
<participantId>
. Bir değer belirtmezseniz, varsayılan değer boş olur. - değerini Azure İletişim Hizmetleri bağlantı dizesi ile değiştirin
<connection-string>
. <valid-from>
Odanın katılma için açık olduğu zaman damgasını belirtmek için isteğe bağlı olarak kullanın, ISO8601 biçimde, örneğin: 2022-07-14T10:21.- İsteğe bağlı olarak, odanın artık birleştirilemeyecek zaman damgasını belirtmek için ISO8601 biçimde kullanın
<valid-until>
. Örneğin: 2022-07-14T10:21. - Bir odada PSTN aramasını etkinleştirmek veya devre dışı bırakmak için bu bayrağı ("True" veya "False") ayarlayarak isteğe bağlı olarak kullanın
<pstn-dial-out-enabled>
. Varsayılan olarak, oda oluşturulurken bu bayrak "False" olarak ayarlanır.
bağlantı dizesi yukarıda belirtildiği gibi ortam değişkenlerinde depoladıysanız, bunları komuta geçirmeniz gerekmez.
az communication rooms create
Bir oda için PSTN dışarı arama özelliğini etkinleştirme
PSTN arama sırasında parametresi "True" olarak tanımlanarak --pstn-dial-out-enabled
etkinleştirilebilirrooms create
. Bu özellik parametresi belirtilerek --pstn-dial-out-enabled
sırasında rooms update
da değiştirilebilir.
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>"
- Bir odada PSTN aramasını etkinleştirmek veya devre dışı bırakmak için bayrağı ("True" veya "False") ayarlayın
<pstn-dial-out-enabled>
.
Odaları alın
komutu rooms get
, mevcut bir odanın özniteliklerini döndürür.
az communication rooms get --room "<roomId>"
- yerine oda kimliğinizi girin
<roomId>
.
Odanın zaman çerçevesini güncelleştirme
Bir odanın zaman damgasını güncelleştirebilirsiniz. Komutu çağırmadan room update
önce geçerli bir zaman çerçevesine sahip yeni bir oda edindiğinizden emin olun.
az communication rooms update --valid-from "<valid-from>" --valid-until "<valid-until>" --pstn-dial-out-enabled "<pstn-dial-out-enabled>" --room "<roomId>"
- yerine
<valid-from>
ISO8601 biçimdeki zaman damgasını (örn. 2022-07-14T10:21) yazın. ile--valid-until
birlikte kullanılmalıdır. - yerine
<valid-until>
ISO8601 biçimdeki zaman damgasını (örn. 2022-07-14T10:21) yazın. ile--valid-from
birlikte kullanılmalıdır. - Bir odada PSTN aramasını etkinleştirmek veya devre dışı bırakmak için bu bayrağı ayarlayın ("True" veya "False") değerini değiştirin
<pstn-dial-out-enabled>
. ile--pstn-dial-out-enabled
birlikte kullanılmalıdır. - yerine oda kimliğinizi girin
<roomId>
.
Tüm etkin odaları listeleme
komut, rooms list
Azure İletişim Hizmetleri kaynağınıza ait tüm etkin odaları döndürür.
az communication rooms list
Yeni katılımcı ekleme veya mevcut katılımcıları güncelleştirme
Oda oluşturduğunuzda, yeni katılımcı ekleyerek veya mevcut katılımcıyı güncelleştirerek odayı güncelleştirebilirsiniz. Komutu çağırmadan room participant add-or-update
önce yeni bir kullanıcı edindiğinizden emin olun.
komutuyla identity user create
participantId
tanımlanan yeni bir katılımcı oluşturmak için komutunu kullanın.
az communication identity user create
Odaya katılımcı olarak bir kullanıcı ekleyin.
az communication rooms participant add-or-update --attendee-participant "<participantId>" --room "<roomId>"
- değerini katılımcı kimliğiniz ile değiştirin
<participantId>
.<participantId>
odada yoksa, katılımcı odaya katılımcı rolü olarak eklenir. Aksi takdirde, katılımcının rolü bir katılımcı rolüne güncelleştirilir. - yerine oda kimliğinizi girin
<roomId>
.
Odadaki katılımcıların listesini alma
az communication rooms participant get --room "<roomId>"
- yerine oda kimliğinizi girin
<roomId>
.
Katılımcıyı odadan kaldırma
kullanarak rooms participant -remove
bir oda katılımcısını odadan kaldırabilirsiniz.
az communication rooms participant remove --room "<roomId>" --participants "<participant1>" "<participant2>" "<participant3>"
- yerine oda kimliğinizi girin
<roomId>
. - komutunu
<participant3>
<participant2>
, daha önce elde edilen kullanıcı kimliklerinizle komutunu çalıştırarakidentity user create
değiştirin<participant1>
.
Odayı silme
Oda oluşturmaya benzer şekilde, bir odayı da silebilirsiniz.
Mevcut odayı silmek için komutunu kullanın room delete
.
az communication rooms delete --room "<roomId>"
- yerine oda kimliğinizi girin
<roomId>
.
Bu hızlı başlangıç, Azure İletişim Hizmetleri Odaları kullanmaya başlamanıza yardımcı olur. A room
, bilinen, sabit bir katılımcı kümesinin önceden belirlenmiş bir süre boyunca işbirliği yapmasına yönelik sunucu tarafından yönetilen bir iletişim alanıdır. Odalar kavramsal belgeleri için rooms
diğer ayrıntıları ve kullanım örneklerini kapsar.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Etkin bir İletişim Hizmetleri kaynağı ve bağlantı dizesi. İletişim Hizmetleri kaynağı oluşturun.
- İşletim sisteminiz için en son sürüm .NET Core istemci kitaplığı .
Örnek kod
GitHub'da bu hızlı başlangıç için örnek kodu gözden geçirebilir ve indirebilirsiniz.
Ayarlama
Yeni bir C# uygulaması oluşturma
Bir konsol penceresinde (cmd, PowerShell veya Bash gibi), adlı RoomsQuickstart
yeni bir konsol uygulaması oluşturmak için komutunu kullanındotnet new
. Bu komut, tek bir kaynak dosyayla basit bir "Merhaba Dünya" C# projesi oluşturur: Program.cs.
dotnet new console -o RoomsQuickstart
Dizininizi yeni oluşturulan uygulama klasörüne değiştirin ve komutunu kullanarak dotnet build
uygulamanızı derleyin.
cd RoomsQuickstart
dotnet build
paketini yükleyin
[NuGet][https://www.nuget.org/] ile .NET için Azure İletişim Odaları istemci kitaplığını yükleyin:
dotnet add package Azure.Communication.Rooms
.NET sürüm 1.1.0 veya üzeri için Azure İletişim Odaları istemci kitaplığını kullanmanız gerekir.
Uygulama çerçevesini ayarlama
Program.cs
Dosyasına aşağıdaki kodu ekleyerek gerekli ad alanlarını içeri aktarın ve temel program yapısını oluşturun.
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
}
}
}
Oda istemcisi başlatma
Yeni RoomsClient
oluşturmak ve özelliklerini ve yaşam döngüsünü yönetmek için kullanılacak yeni rooms
bir nesne oluşturun. İsteğin kimliğini doğrulamak için bağlantı dizesi Communications Service
kullanılır. bağlantı dizesi hakkında daha fazla bilgi için bu sayfaya bakın.
// Find your Communication Services resource in the Azure portal
var connectionString = "<connection_string>";
RoomsClient roomsClient = new RoomsClient(connectionString);
Oda oluşturma
Oda katılımcılarını ayarlama
Bir odaya kimlerin katılabileceğini ayarlamak için bu kullanıcıların kimliklerinin listesine sahip olmanız gerekir. Burada kullanıcı oluşturma ve erişim belirteçleri verme yönergelerini izleyebilirsiniz. Alternatif olarak, kullanıcıları isteğe bağlı olarak oluşturmak istiyorsanız, kullanarak CommunicationIdentityClient
oluşturabilirsiniz. ACS Rooms şu anda yalnızca CommunicationUserIdentifier türünde bir oda katılımcısı destekler; diğer CommunicationIdentity türlerinin kullanılması çalışma zamanı hatasına neden olur.
kullanmak CommunicationIdentityClient
için aşağıdaki paketi yükleyin:
dotnet add package Azure.Communication.Identity
Ayrıca, dosyanızın Program.cs
üst kısmındaki paketin ad alanını içeri aktarın:
using Azure.Communication.Identity;
Şimdi, CommunicationIdentityClient
başlatılabilir ve kullanıcı oluşturmak için kullanılabilir:
// Create identities for users who will join the room
CommunicationIdentityClient identityClient = new CommunicationIdentityClient(connectionString);
CommunicationUserIdentifier user1 = identityClient.CreateUser();
CommunicationUserIdentifier user2 = identityClient.CreateUser();
Ardından, bu kullanıcılara başvurarak oda katılımcılarının listesini oluşturun:
List<RoomParticipant> participants = new List<RoomParticipant>()
{
new RoomParticipant(user1) { Role = ParticipantRole.Presenter },
new RoomParticipant(user2) // The default participant role is ParticipantRole.Attendee
};
Odayı başlatma
Yukarıdaki kod parçacığında tanımlanan öğesini kullanarak participants
yeni room
bir oluşturun:
// 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);
Sunucu tarafı varlıklar olduğundan rooms
, tercih ettiğiniz depolama ortamındaki öğesini izlemek ve kalıcı hale roomId
getirmek isteyebilirsiniz. Bir room
nesnenin roomId
özelliklerini görüntülemek veya güncelleştirmek için öğesine başvurabilirsiniz.
Bir oda için PSTN dışarı arama özelliğini etkinleştirme
Her room
birinde pstn arama varsayılan olarak devre dışıdır. PSTN arama, parametresi true olarak tanımlanarak oluşturma sırasında pstnDialOutEnabled
etkinleştirilebilirroom
. Bu özellik, parametresi için bir room
güncelleştirme isteği pstnDialOutEnabled
düzenlenerek için de değiştirilebilir.
// 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);
Mevcut bir odanın özelliklerini alma
adresine başvurarak roomId
mevcut room
bir öğenin ayrıntılarını alın:
// Retrieve the room with corresponding ID
CommunicationRoom room = await roomsClient.GetRoomAsync(roomId);
Console.WriteLine("\nRetrieved room with id: " + room.Id);
Bir odanın ömrünü güncelleştirme
ve parametreleri için bir güncelleştirme isteği düzenlenerek bir room
öğesinin ValidFrom
ValidUntil
ömrü değiştirilebilir. Bir oda en fazla altı ay geçerli olabilir.
// 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);
Tüm etkin odaları listeleme
Tüm etkin odaları almak için istemcide GetRoomsAsync
kullanıma sunulan yöntemini kullanın.
// 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;
}
Yeni katılımcı ekleme veya mevcut katılımcıları güncelleştirme
öğesine yeni katılımcılar eklemek için room
istemcide AddParticipantsAsync
kullanıma sunulan yöntemini kullanın.
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");
Bir çağrıya eklenen katılımcılar aramalara room
katılmaya uygun hale gelir. Güncelleştirilen katılımcılar aramada yenilerini role
görür.
Katılımcı listesini alma
var olan room
bir katılımcının katılımcı listesini almak için adresine başvurun 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()}");
}
Katılımcıları kaldırma
Bir katılımcıyı uygulamasından room
kaldırmak ve erişimini iptal etmek için yöntemini kullanın RemoveParticipantsAsync
.
// 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");
Odayı sil
Mevcut room
bir öğesini dağıtmak istiyorsanız, açık bir silme isteği yayımlayabilirsiniz. Tüm rooms
kaynaklar ve ilişkili kaynakları, geçerlilik süresi ve yetkisiz kullanım süresi sonunda otomatik olarak silinir.
// Deletes the specified room
Response deleteRoomResponse = await roomsClient.DeleteRoomAsync(roomId);
Console.WriteLine("\nDeleted room with id: " + roomId);
Kodu çalıştırma
Kodu çalıştırmak için dosyanızın Program.cs
bulunduğu dizinde olduğunuzdan emin olun.
dotnet run
Beklenen çıkış, tamamlanan her eylemi açıklar:
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
Başvuru belgeleri
.NET SDK başvurusundan veya REST API başvurusundan Azure İletişim Hizmetleri odalarının tüm özellikleri hakkında bilgi edinin.
Bu hızlı başlangıç, Azure İletişim Hizmetleri Odaları kullanmaya başlamanıza yardımcı olur. A room
, bilinen, sabit bir katılımcı kümesinin önceden belirlenmiş bir süre boyunca işbirliği yapmasına yönelik sunucu tarafından yönetilen bir iletişim alanıdır. Odalar kavramsal belgeleri için rooms
diğer ayrıntıları ve kullanım örneklerini kapsar.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Etkin bir İletişim Hizmetleri kaynağı ve bağlantı dizesi. İletişim Hizmetleri kaynağı oluşturun.
- Java Development Kit (JDK) sürüm 8 veya üzeri.
- Apache Maven
Örnek kod
GitHub'da bu hızlı başlangıç için örnek kodu gözden geçirebilir ve indirebilirsiniz.
Ayarlama
Yeni java uygulaması oluşturma
Bir konsol penceresinde (cmd, PowerShell veya Bash gibi), adlı rooms-quickstart
yeni bir konsol uygulaması oluşturmak için komutunu kullanınmvn
. Bu komut, tek bir kaynak dosyayla basit bir "Merhaba Dünya" Java projesi oluşturur: App.java.
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Paketi dahil et
Java sürüm 1.1.0 veya üzeri için Azure İletişim Odaları istemci kitaplığını kullanmanız gerekir.
BOM dosyasını dahil et
Kitaplığın azure-sdk-bom
Genel Kullanılabilirlik (GA) sürümüne bağımlılık almak için projenize öğesini ekleyin. Aşağıdaki kod parçacığında {bom_version_to_target} yer tutucusunun yerine sürüm numarasını yazın.
Ürün reçetesi hakkında daha fazla bilgi edinmek için bkz . Azure SDK ÜRÜN REÇETESI benioku.
<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>
ve ardından doğrudan bağımlılığı sürüm etiketi olmadan bağımlılıklar bölümüne ekleyin.
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-rooms</artifactId>
</dependency>
</dependencies>
Doğrudan bağımlılığı dahil et
Kitaplığın ürün reçetesinde bulunmayan belirli bir sürümüne bağımlılığı almak istiyorsanız, doğrudan bağımlılığı projenize aşağıdaki gibi ekleyin.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-rooms</artifactId>
<version>1.0.0-beta.1</version>
</dependency>
Uygulama çerçevesini ayarlama
/src/main/java/com/communication/quickstart dizinine App.java
gidin ve dosyayı açın. Şu kodu ekleyin:
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
}
}
Oda istemcisi başlatma
Yeni RoomsClient
oluşturmak ve özelliklerini ve yaşam döngüsünü yönetmek için kullanılacak yeni rooms
bir nesne oluşturun. İsteğin kimliğini doğrulamak için bağlantı dizesi Communications Service
kullanılır. bağlantı dizesi hakkında daha fazla bilgi için bu sayfaya bakın.
// Initialize the rooms client
// Find your Communication Services resource in the Azure portal
String connectionString = "<connection string>";
RoomsClient roomsClient = new RoomsClientBuilder().connectionString(connectionString).buildClient();
Oda oluşturma
Oda katılımcılarını ayarlama
Bir odaya kimlerin katılabileceğini ayarlamak için bu kullanıcıların kimliklerinin listesine sahip olmanız gerekir. Burada kullanıcı oluşturma ve erişim belirteçleri verme yönergelerini izleyebilirsiniz. Alternatif olarak, kullanıcıları isteğe bağlı olarak oluşturmak istiyorsanız, kullanarak CommunicationIdentityClient
oluşturabilirsiniz. ACS Rooms şu anda yalnızca CommunicationUserIdentifier türünde bir oda katılımcısı destekler; diğer CommunicationIdentity türlerinin kullanılması çalışma zamanı hatasına neden olur.
kullanmak CommunicationIdentityClient
için aşağıdaki paketi ekleyin:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-identity</artifactId>
</dependency>
Paketi dosyanızın App.java
en üstünde içeri aktarın:
import com.azure.communication.identity.CommunicationIdentityClient;
import com.azure.communication.identity.CommunicationIdentityClientBuilder;
Şimdi, CommunicationIdentityClient
başlatılabilir ve kullanıcı oluşturmak için kullanılabilir:
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.connectionString(connectionString)
.buildClient();
CommunicationUserIdentifier user1 = communicationClient.createUser();
CommunicationUserIdentifier user2 = communicationClient.createUser();
CommunicationUserIdentifier user3 = communicationClient.createUser();
Ardından, bu kullanıcılara başvurarak oda katılımcılarının listesini oluşturun:
//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));
Odayı başlatma
Yukarıdaki kod parçacığında tanımlanan öğesini kullanarak roomParticipants
yeni room
bir oluşturun:
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());
Sunucu tarafı varlıklar olduğundan rooms
, tercih ettiğiniz depolama ortamındaki öğesini izlemek ve kalıcı hale roomId
getirmek isteyebilirsiniz. Bir room
nesnenin roomId
özelliklerini görüntülemek veya güncelleştirmek için öğesine başvurabilirsiniz.
Bir oda için PSTN dışarı arama özelliğini etkinleştirme
Her room
birinde pstn arama varsayılan olarak devre dışıdır. PSTN arama, parametresi true olarak tanımlanarak oluşturma sırasında pstnDialOutEnabled
etkinleştirilebilirroom
. Bu özellik, parametresi için bir room
güncelleştirme isteği pstnDialOutEnabled
düzenlenerek için de değiştirilebilir.
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());
Mevcut bir odanın özelliklerini alma
adresine başvurarak roomId
mevcut room
bir öğenin ayrıntılarını alın:
// Retrieve the room with corresponding ID
CommunicationRoom roomResult = roomsClient.getRoom(roomId);
System.out.println("Retrieved room with id: " + roomResult.getRoomId());
Bir odanın ömrünü güncelleştirme
ve parametreleri için bir güncelleştirme isteği düzenlenerek bir room
öğesinin ValidFrom
ValidUntil
ömrü değiştirilebilir. Bir oda en fazla altı ay geçerli olabilir.
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());
Katılımcı ekleme veya güncelleştirme
bir öğesine katılımcı eklemek veya güncelleştirmek için room
istemcide addOrUpdateParticipants
kullanıma sunulan yöntemini kullanın.
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");
Bir çağrıya eklenen katılımcılar aramalara room
katılmaya uygun hale gelir.
Katılımcı listesini alma
var olan room
bir katılımcının katılımcı listesini almak için adresine başvurun 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);
}
Katılımcıları kaldırma
Bir katılımcıyı uygulamasından room
kaldırmak ve erişimini iptal etmek için yöntemini kullanın removeParticipants
.
// 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");
Tüm etkin odaları listeleme
Azure İletişim Hizmetleri kaynağınızın altındaki tüm etkinleri rooms
alın.
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);
}
Odayı sil
Mevcut room
bir öğesini dağıtmak istiyorsanız, açık bir silme isteği yayımlayabilirsiniz. Tüm rooms
kaynaklar ve ilişkili kaynakları, geçerlilik süresi ve yetkisiz kullanım süresi sonunda otomatik olarak silinir.
// Deletes the specified room
roomsClient.deleteRoomWithResponse(roomId, Context.NONE);
System.out.println("\nDeleted the room with ID: " + roomId);
Kodu çalıştırma
Kodu çalıştırmak için dosyayı içeren pom.xml
dizine gidin ve programı derleyin.
mvn compile
Ardından paketi derleyin:
mvn package
Uygulamayı yürütür.
mvn exec:java -D"exec.mainClass"="com.communication.rooms.quickstart" -D"exec.cleanupDaemonThreads"="false"
Beklenen çıkış, tamamlanan her eylemi açıklar:
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
Başvuru belgeleri
Java SDK başvurusundan veya REST API başvurusundan Azure İletişim Hizmetleri odalarının tüm özellikleri hakkında bilgi edinin.
Bu hızlı başlangıç, Azure İletişim Hizmetleri Odaları kullanmaya başlamanıza yardımcı olur. A room
, bilinen, sabit bir katılımcı kümesinin önceden belirlenmiş bir süre boyunca işbirliği yapmasına yönelik sunucu tarafından yönetilen bir iletişim alanıdır. Odalar kavramsal belgeleri için rooms
diğer ayrıntıları ve kullanım örneklerini kapsar.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Etkin bir İletişim Hizmetleri kaynağı ve bağlantı dizesi. İletişim Hizmetleri kaynağı oluşturun.
- İşletim sisteminiz için Python 3.7+ .
Örnek kod
GitHub'da bu hızlı başlangıç için örnek kodu gözden geçirebilir ve indirebilirsiniz.
Ayarlama
Yeni Python uygulaması oluşturma
Terminal veya konsol penceresinde uygulamanız için yeni bir klasör oluşturun ve bu klasöre gidin.
mkdir acs-rooms-quickstart
cd acs-rooms-quickstart
paketini yükleyin
Python sürüm 1.1.0 veya üzeri için Azure İletişim Odaları istemci kitaplığını kullanmanız gerekir.
Konsol isteminden rooms.py dosyasını içeren dizine gidin ve aşağıdaki komutu yürütebilirsiniz:
pip install azure-communication-rooms
Uygulama çerçevesini ayarlama
adlı rooms-quickstart.py
yeni bir dosya oluşturun ve temel program yapısını ekleyin.
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()
Oda istemcisi başlatma
Yeni RoomsClient
oluşturmak ve özelliklerini ve yaşam döngüsünü yönetmek için kullanılacak yeni rooms
bir nesne oluşturun. İsteğin kimliğini doğrulamak için bağlantı dizesi Communications Service
kullanılır. bağlantı dizesi hakkında daha fazla bilgi için bu sayfaya bakın.
#Find your Communication Services resource in the Azure portal
connection_string = '<connection_string>'
rooms_client = RoomsClient.from_connection_string(connection_string)
Oda oluşturma
Oda katılımcılarını ayarlama
Bir odaya kimlerin katılabileceğini ayarlamak için bu kullanıcıların kimliklerinin listesine sahip olmanız gerekir. Burada kullanıcı oluşturma ve erişim belirteçleri verme yönergelerini izleyebilirsiniz. Alternatif olarak, kullanıcıları isteğe bağlı olarak oluşturmak istiyorsanız, kullanarak CommunicationIdentityClient
oluşturabilirsiniz. ACS Rooms şu anda yalnızca CommunicationUserIdentifier türünde bir oda katılımcısı destekler; diğer CommunicationIdentity türlerinin kullanılması çalışma zamanı hatasına neden olur.
kullanmak CommunicationIdentityClient
için aşağıdaki paketi yükleyin:
pip install azure-communication-identity
Ayrıca, dosyanızın rooms-quickstart.py
üst kısmındaki paketin ad alanını içeri aktarın:
from azure.communication.identity import (
CommunicationIdentityClient
)
Şimdi, CommunicationIdentityClient
başlatılabilir ve kullanıcı oluşturmak için kullanılabilir:
# 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()
Ardından, bu kullanıcılara başvurarak oda katılımcılarının listesini oluşturun:
participant_1 = RoomParticipant(communication_identifier=user1, role=ParticipantRole.PRESENTER)
participant_2 = RoomParticipant(communication_identifier=user2, role=ParticipantRole.CONSUMER)
participants = [participant_1, participant_2]
Odayı başlatma
Yukarıdaki kod parçacığında tanımlanan öğesini kullanarak participants
yeni room
bir oluşturun:
# 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)
Sunucu tarafı varlıklar olduğundan rooms
, tercih ettiğiniz depolama ortamındaki öğesini izlemek ve kalıcı hale room.id
getirmek isteyebilirsiniz. Bir room
nesnenin id
özelliklerini görüntülemek veya güncelleştirmek için öğesine başvurabilirsiniz.
Bir oda için PSTN dışarı arama özelliğini etkinleştirme
Her room
birinde pstn arama varsayılan olarak devre dışıdır. PSTN arama, parametresi true olarak tanımlanarak oluşturma sırasında pstn_dial_out_enabled
etkinleştirilebilirroom
. Bu özellik, parametresi için bir room
güncelleştirme isteği pstn_dial_out_enabled
düzenlenerek için de değiştirilebilir.
# 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)
Mevcut bir odanın özelliklerini alma
adresine başvurarak id
mevcut room
bir öğenin ayrıntılarını alın:
# 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)
Bir odanın ömrünü güncelleştirme
ve parametreleri için bir güncelleştirme isteği düzenlenerek bir room
öğesinin valid_from
valid_until
ömrü değiştirilebilir. Bir oda en fazla altı ay geçerli olabilir.
# 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)
Tüm etkin odaları listeleme
Kaynağınız altında oluşturulan tüm etkin odaları almak için istemcide list_rooms
gösterilen yöntemini kullanın.
# 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)
Katılımcı ekleme veya güncelleştirme
içinde yeni katılımcılar eklemek veya mevcut katılımcıları room
güncelleştirmek için istemcide add_or_update_participants
gösterilen yöntemini kullanın.
# 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)
Bir çağrıya eklenen katılımcılar aramalara room
katılmaya uygun hale gelir.
Odadaki katılımcıları listeleme
var olan room
bir katılımcının katılımcı listesini almak için adresine başvurun 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)
Katılımcıları kaldırma
Bir katılımcıyı uygulamasından room
kaldırmak ve erişimini iptal etmek için yöntemini kullanın remove_participants
.
# 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)
Odayı sil
Mevcut room
bir öğesini dağıtmak istiyorsanız, açık bir silme isteği yayımlayabilirsiniz. Tüm rooms
kaynaklar ve ilişkili kaynakları, geçerlilik süresi ve yetkisiz kullanım süresi sonunda otomatik olarak silinir.
# Delete Room
rooms_client.delete_room(room_id=room_id)
print("\nDeleted room with id: " + room_id)
Kodu çalıştırma
Kodu çalıştırmak için dosyanızın rooms-quickstart.py
bulunduğu dizinde olduğunuzdan emin olun.
python rooms-quickstart.py
Beklenen çıkış, tamamlanan her eylemi açıklar:
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
Başvuru belgeleri
Python SDK başvurusundan veya REST API başvurusundan Azure İletişim Hizmetleri odalarının tüm özellikleri hakkında bilgi edinin.
Bu hızlı başlangıç, Azure İletişim Hizmetleri Odaları kullanmaya başlamanıza yardımcı olur. A room
, bilinen, sabit bir katılımcı kümesinin önceden belirlenmiş bir süre boyunca işbirliği yapmasına yönelik sunucu tarafından yönetilen bir iletişim alanıdır. Odalar kavramsal belgeleri için rooms
diğer ayrıntıları ve kullanım örneklerini kapsar.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Etkin bir İletişim Hizmetleri kaynağı ve bağlantı dizesi. İletişim Hizmetleri kaynağı oluşturun.
- Node.js Active LTS ve Maintenance LTS sürümlerinin en son sürümleri.
Örnek kod
GitHub'da bu hızlı başlangıç için örnek kodu gözden geçirebilir ve indirebilirsiniz.
Ayarlama
Yeni web uygulaması oluşturma
Terminal veya konsol penceresinde uygulamanız için yeni bir klasör oluşturun ve bu klasöre gidin.
mkdir acs-rooms-quickstart && cd acs-rooms-quickstart
Varsayılan ayarlarla bir package.json dosyası oluşturmak için komutunu çalıştırın npm init
.
npm init -y
Bu hızlı başlangıcın kodunun eklendiği yeni bir dosya index.js
oluşturun.
Paketleri yükleme
JavaScript sürüm 1.1.0 veya üzeri için Azure İletişim Odaları istemci kitaplığını kullanmanız gerekir.
npm install
JavaScript için aşağıdaki İletişim Hizmetleri SDK'larını yüklemek için komutunu kullanın.
npm install @azure/communication-rooms --save
Uygulama çerçevesini ayarlama
index.js
dosyasına aşağıdaki kodu ekleyin. İşlevde hızlı başlangıcın main
kodunu ekleyeceğiz.
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);
})
Oda istemcisi başlatma
Yeni RoomsClient
oluşturmak ve özelliklerini ve yaşam döngüsünü yönetmek için kullanılacak yeni rooms
bir nesne oluşturun. İsteğin kimliğini doğrulamak için bağlantı dizesi Communications Service
kullanılır. bağlantı dizesi hakkında daha fazla bilgi için bu sayfaya bakın.
İşlevin içine index.js
main
aşağıdaki kodu ekleyin.
const connectionString =
process.env["COMMUNICATION_CONNECTION_STRING"] ||
"endpoint=https://<resource-name>.communication.azure.com/;<access-key>";
// create RoomsClient
const roomsClient = new RoomsClient(connectionString);
Oda oluşturma
Oda katılımcılarını ayarlama
Bir odaya kimlerin katılabileceğini ayarlamak için bu kullanıcıların kimliklerinin listesine sahip olmanız gerekir. Burada kullanıcı oluşturma ve erişim belirteçleri verme yönergelerini izleyebilirsiniz. Alternatif olarak, kullanıcıları isteğe bağlı olarak oluşturmak istiyorsanız, kullanarak CommunicationIdentityClient
oluşturabilirsiniz. ACS Rooms şu anda yalnızca CommunicationUserIdentifier türünde bir oda katılımcısı destekler; diğer CommunicationIdentity türlerinin kullanılması çalışma zamanı hatasına neden olur.
CommunicationIdentityClient'ı kullanmak için aşağıdaki npm paketini yükleyin:
npm install @azure/communication-identity --save
Ayrıca, dosyanızın index.js
en üstüne aşağıdaki gerekli paketi ekleyin:
const { CommunicationIdentityClient } = require('@azure/communication-identity');
Şimdi, CommunicationIdentityClient
başlatılabilir ve kullanıcı oluşturmak için kullanılabilir:
// create identities for users
const identityClient = new CommunicationIdentityClient(connectionString);
const user1 = await identityClient.createUserAndToken(["voip"]);
const user2 = await identityClient.createUserAndToken(["voip"]);
Ardından, bu kullanıcılara başvurarak oda katılımcılarının listesini oluşturun:
const participants = [
{
id: user1.user,
role: "Presenter",
},
{
id: user2.user,
role: "Consumer",
}
]
Odayı başlatma
Yukarıdaki kod parçacığında tanımlanan öğesini kullanarak participants
yeni room
bir oluşturun:
// 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);
Sunucu tarafı varlıklar olduğundan rooms
, tercih ettiğiniz depolama ortamındaki öğesini izlemek ve kalıcı hale roomId
getirmek isteyebilirsiniz. Bir room
nesnenin roomId
özelliklerini görüntülemek veya güncelleştirmek için öğesine başvurabilirsiniz.
Bir oda için PSTN dışarı arama özelliğini etkinleştirme
Her room
birinde pstn arama varsayılan olarak devre dışıdır. PSTN arama, parametresi true olarak tanımlanarak oluşturma sırasında pstnDialOutEnabled
etkinleştirilebilirroom
. Bu özellik, parametresi için bir room
güncelleştirme isteği pstnDialOutEnabled
düzenlenerek için de değiştirilebilir.
// 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);
Mevcut bir odanın özelliklerini alma
adresine başvurarak roomId
mevcut room
bir öğenin ayrıntılarını alın:
// Retrieve the room with corresponding ID
const getRoom = await roomsClient.getRoom(roomId);
console.log("\nRetrieved room with id: ", getRoom.id);
Bir odanın ömrünü güncelleştirme
ve parametreleri için bir güncelleştirme isteği düzenlenerek bir room
öğesinin validFrom
validUntil
ömrü değiştirilebilir. Bir oda en fazla altı ay geçerli olabilir.
// 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);
Oda listesini alma
Yöntemini kullanarak listRooms
oda listenizi alın:
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;
}
Katılımcı ekleme veya güncelleştirme
öğesine yeni katılımcılar eklemek için room
istemcide addOrUpdateParticipants
kullanıma sunulan yöntemini kullanın. Bu yöntem, odada zaten varsa katılımcıyı da güncelleştirir.
// 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");
Bir çağrıya eklenen katılımcılar aramalara room
katılmaya uygun hale gelir.
Katılımcı listesini alma
var olan room
bir katılımcının katılımcı listesini almak için adresine başvurun 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);
}
Katılımcıları kaldırma
Bir katılımcıyı uygulamasından room
kaldırmak ve erişimini iptal etmek için yöntemini kullanın removeParticipants
.
// 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");
Odayı sil
Mevcut room
bir öğesini dağıtmak istiyorsanız, açık bir silme isteği yayımlayabilirsiniz. Tüm rooms
kaynaklar ve ilişkili kaynakları, geçerlilik süresi ve yetkisiz kullanım süresi sonunda otomatik olarak silinir.
// Deletes the specified room
await roomsClient.deleteRoom(roomId);
console.log("\nDeleted room with id: ", roomId)
Kodu çalıştırma
Kodu çalıştırmak için dosyanızın index.js
bulunduğu dizinde olduğunuzdan emin olun.
node index.js
Beklenen çıkış, tamamlanan her eylemi açıklar:
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
Başvuru belgeleri
JavaScript SDK başvurusundan veya REST API başvurusundan Azure İletişim Hizmetleri odalarının tüm özellikleri hakkında bilgi edinin.
Sonraki adımlar
Odayı oluşturduktan ve yapılandırdıktan sonra odalar çağrısına katılmayı öğrenebilirsiniz.
Bu bölümde şunların nasıl yapılacağını öğrendiniz:
- Yeni oda oluşturma
- Bir odanın özelliklerini alma
- Odanın özelliklerini güncelleştirme
- Odayı silme
Ayrıca şunları da isteyebilirsiniz:
- Oda kavramı hakkında bilgi edinin
- Sesli ve görüntülü arama kavramları hakkında bilgi edinin
- Azure İletişim Hizmetleri örneklerini gözden geçirme