你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 JavaScript 的 Azure RoomsApi 客户端库 - 版本 1.1.1
此包包含 Azure RoomApi 客户端的同态 SDK(在 Node.js 和浏览器中运行)。
通信室客户端
开始
当前支持的环境
- LTS 版本的 Node.js
- 最新版本的 Safari、Chrome、Edge 和 Firefox。
先决条件
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
更新会议室
若要更新聊天室的 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: 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/记录器包文档。
后续步骤
有关如何使用此库的详细示例,请查看 示例 目录。
贡献
若要参与此库,请阅读 贡献指南 了解有关如何生成和测试代码的详细信息。
相关项目