你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 JavaScript 的 Azure RoomsApi 客户端库 - 版本 1.1.1

此包包含 Azure RoomApi 客户端的同态 SDK(在 Node.js 和浏览器中运行)。

通信室客户端

源代码 | 包(NPM) | 示例

开始

当前支持的环境

先决条件

JavaScript 捆绑包

若要在浏览器中使用此客户端库,首先需要使用捆绑程序。 有关如何执行此操作的详细信息,请参阅我们的 捆绑文档

安装

npm install @azure/communication-rooms

关键概念

RoomsApiClient

RoomsClient 是开发人员使用 Azure RoomApi 客户端库的主要接口。 探索此客户端对象上的方法,了解可以访问的 Azure RoomApi 服务的不同功能。

例子

认证

可以从 Azure 门户中的通信服务资源获取密钥和/或连接字符串。 获得密钥后,可以使用以下任一方法对 RoomsClient 进行身份验证:

在初始化客户端之前使用 AzureKeyCredential 创建 KeyCredential

import { AzureKeyCredential } from "@azure/core-auth";
import { RoomsClient } from "@azure/communication-rooms";

const credential = new AzureKeyCredential(KEY);
const client = new RoomsClient(ENDPOINT, credential);

使用连接字符串

import { RoomsClient } from "@azure/communication-rooms";

const connectionString = `endpoint=ENDPOINT;accessKey=KEY`;
const client = new RoomsClient(connectionString);

使用 TokenCredential

import { DefaultAzureCredential } from "@azure/identity";
import { RoomsClient } from "@azure/communication-rooms";

const credential = new DefaultAzureCredential();
const client = new RoomsClient(ENDPOINT, credential);

如果使用密钥初始化客户端,则还需要提供相应的终结点。 可以从 Azure 门户中的通信服务资源获取此终结点。

用法

创建聊天室

若要创建聊天室,请调用 createRoom 方法。 所有设置都是可选的。

如果未提供 validFrom,则默认为当前日期/时间。 如果未提供 validUntil,则默认为 validFrom + 180 days

定义 participants时,如果未指定 role,则默认 attendee

从 1.1.0 版开始,PstnDialOutEnabled 属性添加到会议室中启用或禁用 PSTN 拨出功能。 PstnDialOutEnabled 是一个可选属性。 如果未提供 PstnDialOutEnabled,则 PstnDialOutEnabled 的默认值为 false。

// create users with CommunicationIdentityClient
const identityClient = new CommunicationIdentityClient(connectionString);
const user1 = await identityClient.createUserAndToken(["voip"]);

// create RoomsClient
const roomsClient: RoomsClient = new RoomsClient(CONNECTION_STRING);

const validFrom = new Date(Date.now());
const validForDays = 10;
const validUntil = new Date(validFrom.getTime());
validUntil.setDate(validFrom.getDate() + validForDays);
const pstnDialOutEnabled = true;

// options payload to create a room
const createRoomOptions: CreateRoomOptions = {
  validFrom,
  validUntil,
  pstnDialOutEnabled,
  participants: [
    {
      id: user1.user,
      role: "Attendee",
    },
  ],
};

// create room
const room = await roomsClient.createRoom(createRoomOptions);

在此处查找 CommunicationIdentityClient

更新会议室

若要更新聊天室的 validFromvalidUntil 设置,请使用 updateRoom 方法。

从 1.1.0 版开始,PstnDialOutEnabled 属性添加到会议室中启用或禁用 PSTN 拨出功能。

validForDays = 60;
validUntil.setDate(validFrom.getDate() + validForDays);
pstnDialOutEnabled = false;

const updateRoomOptions: UpdateRoomOptions = {
  validFrom,
  validUntil,
  pstnDialOutEnabled,
};

// update the room using the room id from the creation operation
const updatedRoom = await roomsClient.updateRoom(room.id, updateRoomOptions);

获取会议室

若要获取会议室,请使用 getRoom 方法。

const roomId = "ROOM_ID";
room = await roomsClient.getRoom(roomId);

列出会议室

使用 listRooms 方法列出所有会议室。

const roomsList = await roomsClient.listRooms();
for await (const currentRoom of roomsList) {
  // access room data
  console.log(`The room id is ${currentRoom.id}.`);
}

添加或更新参与者

若要添加新参与者或更新现有参与者,请使用 addOrUpdateParticipants 方法。

const user2 = await identityClient.createUserAndToken(["voip"]);
const updateParticipantsList: RoomParticipantPatch[] = [
  {
    id: user1.user,
    role: "Presenter",
  },
  {
    id: user2.user,
  },
];

// run addOrUpdate operation
await roomsClient.addOrUpdateParticipants(room.id, updateParticipantsList);

删除参与者

若要删除参与者,请调用 removeParticipants 方法。

const participantsToRemove = [user1.user, user2.user];
await roomsClient.removeParticipants(room.id, participantsToRemove);

获取会议室中的参与者

若要列出会议室中的所有参与者,请调用 listParticipants 方法。

const participantsList = await roomsClient.listParticipants(room.id);
for await (const participant of participantsList) {
  // access participant data
  console.log(`The participant's role is ${participant.role}.`);
}

删除会议室

使用 deleteRoom 方法删除聊天室。

await roomsClient.deleteRoom(room.id);

故障 排除

伐木

启用日志记录可能有助于发现有关故障的有用信息。 若要查看 HTTP 请求和响应的日志,请将 AZURE_LOG_LEVEL 环境变量设置为 info。 或者,可以通过在 @azure/logger中调用 setLogLevel 在运行时启用日志记录:

const { setLogLevel } = require("@azure/logger");
setLogLevel("info");

有关如何启用日志的更详细说明,可以查看 @azure/记录器包文档

后续步骤

有关如何使用此库的详细示例,请查看 示例 目录。

贡献

若要参与此库,请阅读 贡献指南 了解有关如何生成和测试代码的详细信息。

印象