Skip to content

Agora Meeting 业务服务

caitengwen edited this page Oct 29, 2020 · 6 revisions

Read this article in another language: English

概览

声网Agora Meeting 业务服务,实现会议、主持人和与会人的状态管理,具体功能如下:

  • 创建会议室
  • 生成及更新 RTC、RTM 白板 Token
  • 管理主持及与会人列表
  • 开关主持人和参会人的音视频
  • 管理房间禁言状态及会议控制
  • 共享屏幕
  • 操作白板
  • 移交主持人
  • 会议室内人员进出通知、人数统计
  • 即时聊天
  • 关闭会议室

你可直接使用 Agora Meeting 业务服务,并配合 Agora RTC SDK、Agora RTM SDK 和第三方 Netless 白板 SDK,快速搭建在线互动会议场景。

前提准备

在编译及运行 Agora e-Education 示例项目之前,你需要完成以下准备工作。

获取声网 App ID

通过以下步骤获取声网 App ID:

  1. 在声网控制台创建一个账号。
  2. 登录声网控制台,创建一个项目,鉴权方式选择 “App ID + App 证书 + Token”。注意,请确保该项目启用了 App 证书
  3. 前往项目管理页面,获取该项目的 App ID。

进行 HTTP 基本认证

在使用 RESTful API 时,你需要使用声网提供的 Customer ID 和 Customer Certificate 通过 Base64 算法编码生成一个 Authorization 字段,填入 HTTP 请求头部,进行 HTTP 基本认证。详见具体步骤

获取第三方白板 sdkToken 并注册到Agora云服务

通过以下步骤获取第三方白板 sdkToken

  1. Netless 控制台创建一个账号。
  2. 登录 Netless 控制台,前往密钥管理页面,获取 sdkToken

你需要将白板的 sdkToken 注册到Agora云服务器中。

  1. 打开Agora控制台
  2. 编辑项目管理,移动功能模块,找到白板token,点击“更新token”进行注册。

整体架构

  1. 一个Meeting客户端包括业务状态管理Biz Manager、实时音视频RTC SDK、实时消息RTM SDK。
  2. Biz Manager 用于通过上行Restful Api与服务端Meeting Service交互,操作房间、人/流、白板、屏幕共享等会控状态,管理本地数据与服务器数据的同步。
  3. RTC SDK根据Biz Manager中获得的人员和屏幕的流信息,控制订阅和发布指定媒体流。
  4. RTM SDK用于接收Meeting业务服务发来的同步数据,并将房间状态变更交予Biz Manager处理。

快速上手 Agora Meeting 业务服务

进入房间

调用 entry room 方法加入房间。

POST /conf/v1/apps/{appId}/room/entry

关注以下参数:

入参 说明
appId Agora 为 App 开发者签发的 App ID
roomName 房间名,用于房间内显示。
roomUuid 你的会议系统中的唯一房间标识。传入相同 roomUuid 的用户会分配到同一个房间。
userName 用户名,用于房间内显示。
userUuid 你的用户系统中的唯一用户标识。使用相同 userUuid 会被认为是同一个用户。
password 会议室密码,为选填。
enableVideo 是否打开摄像头,默认 0,表示打开。
enableAudio 是否打开麦克风,默认 0,表示打开。
出参 说明
roomId 房间 ID,房间的唯一标识。
userToken 用户 Token,用户在该房间内的身份凭证,后续在房间内的操作都需要传入此凭证。

初始化房间

调用 get room info 方法获取房间信息(房间名、房间类型、白板 ID 和白板 Token、会议状态、房间内在线人数、连麦用户列表)和当前用户信息(用户名、用户角色、RTC Token、RTM Token、Mute 状态)。

客户端可以通过这些信息初始化房间。

GET /conf/v1/apps/{appId}/room/{roomId}

关注以下参数:

入参 说明
appId Agora 为 App 开发者签发的 App ID
roomId 房间 ID,房间的唯一标识,由 entry room 方法返回。
token 用户 Token,用户在该房间内的身份凭证,由 entry room 方法 response 中的 userToken 返回。
出参 说明
room 当前房间信息,包括房间名、房间类型、会议状态、在线人数等。此处会返回进房间时传的 roomUuid,如需进行定制化开发,你可以将此关联到你自己的会议系统。
user 当前用户的信息,包括用户名、用户角色、RTC Token、RTM Token、可否音视频聊天等。此处会返回进房间时传的 userUuid,如需进行定制化开发,你可以将此关联到你自己的用户系统。

会议中

在会议过程中,主持人可以调用 change room infochange user info 方法更新房间信息(是否全部禁言、是否锁定白板和会议状态)和用户信息(能否文字聊天、能否发视频、能否发语音、能否操作白板等)。

与会人可以调用 change user info 方法更新自己的用户信息。

信息修改完成后,后台会通过 RTM 频道消息广播给房间内其他用户。

change room info

POST /conf/v1/apps/{appId}/room/{roomId}

需要传入 appIdroomIdtoken

change user info

POST /conf/v1/apps/{appId}/room/{roomId}/user/{userId}

需要传入 appIdroomIdtoken,并指定 userId