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

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

此包包含一个同构 SDK (在 azure RoomsApi 客户端) Node.js 和浏览器中运行。

通信室客户端

源代码 | 包 (NPM) | 样品

入门

目前支持的环境

先决条件

JavaScript 捆绑包

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

安装

npm install @azure/communication-rooms

关键概念

RoomsApiClient

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

示例

身份验证

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

KeyCredential初始化客户端之前使用 AzureKeyCredential Create

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());
let validForDays = 10;
let validUntil = new Date(validFrom.getTime());
validUntil.setDate(validFrom.getDate() + validForDays);
let 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

更新聊天室

若要更新 validFrom 聊天室的 和 validUntil 设置,请使用 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 = [
  {
    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/logger 包文档

后续步骤

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

贡献

若要为此库做出贡献,请阅读贡献指南,详细了解如何生成和测试代码。

曝光数