RoomKit
  • 平台类型
  • 框架 / 引擎
  • iOS
  • Android
  • macOS
  • Windows
  • Linux
  • Web
  • 小程序

快速启动房间

更新时间:2021-11-12 19:12

1. 功能介绍

RoomKit 提供的接入方案,为不同的业务方案提供了适配方式:

  1. 如果您的产品已具备用户系统和房间系统(房间也可以是频道、小组、群等),可自行管理用户 ID与房间 ID。
  2. 如果您的产品没有自己的房间系统,我们提供了教育云服务帮助您进行房间管理,集成方法请参考文档 使用教育云 API 管理房间

本篇文档基于上述的第一种场景介绍实现流程。

接入架构图:

/Pics/RoomKit/AllPlatform/roomkit_architecture.png

在这个架构中,您需要通过您自己的业务系统实现以下业务逻辑:

  1. 搭建用户管理逻辑,并下发用户 ID 给客户端用于加入房间。
  2. 搭建房间管理逻辑,并下发房间 ID 给客户端用户加入房间。
  3. 鉴权 Token,建议由您的业务后台向 RoomKit 服务器请求 SDK Token 以保证鉴权数据安全。

加入房间后,您就可以开始使用 RoomKit 提供的房间功能,实现效果示意图如下:

/Pics/RoomKit/AllPlatform/join_room_mobile.gif

2. 前提条件

在实现基本的功能之前,请确保:

3. 实现步骤

使用 RoomKit SDK 只需三步,即可快速搭建一个音视频应用,流程图如下:

/Pics/RoomKit/AllPlatform/RoomKit_edu_api.png

3.1 初始化 SDK

  1. 导入 SDK 后,若要使用 SDK 的相关功能,需要初始化 SDK,初始化所需配置信息如下:
@interface ZegoInitConfig : NSObject

/// 由Zego后台分配
@property (nonatomic, assign) NSInteger secretID;

@end
  1. 根据以上信息构建 config,并调用 initWithConfig 接口进行初始化。
// 构建 ZegoInitConfig 实例
ZegoInitConfig *config = [[ZegoInitConfig alloc] init];
config.secretID = 123456; // ZEGO 分配的 secretID

// 初始化 SDK
[[ZegoRoomKit sharedInstance] initWithConfig:config completion:^(ZegoRoomKitError error) {

}];

3.2 获取 SDK Token

您可以通过调用 RoomKit 服务端 API 获取 SDK Token 接口 获取 SDK Token。

我们提供了 服务端 API 调测指南 帮助您使用 Postman 快速调用接口进行调试。

建议开发者使用业务服务器向 RoomKit 服务器请求 SDK Token 以保证鉴权数据安全。

3.3 加入房间

加入房间需要以下信息:

  • 鉴权信息:token,productID
  • 房间信息:roomID
  • 用户信息:userID,userName,role

RoomKit SDK 支持使用任意用户 ID(64位数值型)和房间 ID(64位数值型)加入房间。

  1. 为了避免数据错乱以及成员互踢等现象,开发者需要保证用户 ID 和房间 ID 的全局唯一性。

  2. 如果开发者需要接入 Web 端,H5 移动端或微信小程序端,用户 ID 和房间 ID 需要控制在53位整形内,避免 JS 语言里整形越界。

使用上述信息,设置 加入房间配置对象

/// 加入房间配置对象
///
@interface ZegoJoinRoomConfig : NSObject

/// 房间号
@property (nonatomic, copy) NSString *roomID;

/// 项目 ID
@property (nonatomic, assign) NSInteger productID;

/// token
@property (nonatomic, copy) NSString *token;

/// 用户名
@property (nonatomic, copy) NSString *userName;

/// 用户 ID
@property (nonatomic, assign) NSInteger userID;

/// 加入房间时的角色
@property (nonatomic, assign) ZegoRoomKitRole role;

@end
  1. 根据以信息上构建 config, 并调用 joinRoomWithConfig 加入房间,即可完成音视频应用搭建。
// 实例化 config
ZegoJoinRoomConfig *config = [ZegoJoinRoomConfig new];
config.roomID = @"123456789"; // 房间 ID
config.productID = 1234; // productID
config.userName = @"anne"; // 用户名
config.userID = 123456789; // 用户 ID
config.role = ZegoRoomKitRoleAttendee; // 以观众身份加入房间
config.token = @"qwertyuiop"; // token,调用对应 Server API 获取

// 加入房间
[[ZegoRoomKit sharedInstance].inRoomService joinRoomWithConfig:config
                                                        fromVC:fromVC
                                                    completion:^(ZegoRoomKitError errorCode) {
}];

相关文档