跳转至
400-881-9892

文档中心

官方文档,可查阅产品介绍、快速入门、用户指南、开发指南、API参考、SDK参考、帮助等信息。

文档中心 互动课堂

进出房间和房间信息

最近更新时间:2022-01-25 14:46:23 星期二

关于进房间的简要概述

  • 关于房间ID:

    普通房间:需要优先在后台 创建房间,获取到房间ID后,调用 joinRoom 进房间。
    即时房间:无需优先在后台创建房间,可直接调用 joinRoomEx 接口,传入房间ID,即可进入房间。 注意:token 方式进房间时,房间ID必须与生成的 token 时使用的房间ID信息一致。

  • 关于用户ID问题:

    roomParams 若传入了用户ID,SDK会使用传入的userId,若不传入用户ID, SDK会自动生成一个userId。 注意:token 方式进房间时,用户ID必须与生成的 token 时使用的用户ID信息一致。

  • 关于进房间的流程及回调:

    • 调用joinroom接口后,sdk就进入了 进房间流程 :
    • checkroom检测房间, 检查 房间ID用户密码 等信息。成功后可以获取该房间基础信息和用户基础信息;
    • configroom房间配置, 成功后获取房间链路IP地址和文档服务器地址;
    • connectsocket链接socket, 根据获取到的链路IP地址去链接socket;
    • joinroom进房间, socket成功后,开始进入房间,并返回房间信息(包括房间人数、房间消息、已发布的流信息等)。
    • 回调 :
    • 流程回调: 此过程中用户会收到 - onError(int errorCode, String errMsg) 或者 - onWarning(int warning) 的代理回调。根据在代理回调中返回的警告码或者错误码,可以了解到各个流程是成功或者失败。
    • joinroom回调: 成功进入房间后,有 - (void)onRoomJoined 回调

joinRoom

简要描述 - 加入普通房间接口

  1. 需要优先在后台 创建房间,获取到房间ID后,调用此接口进入房间。
  2. 必须有appId。调用此接口前,需先调用 init ,并且在 init 中传入 appId 。

接口名称

1
    - (int)joinRoom(RoomParams roomParams, UserParams userParams)

参数

参数名 必填 类型 说明
roomParams RroomParams 房间所需的基本参数,值详情见 相关扩展字段 相关joinRoom定义
userParams UserParams 用户所需的基本参数,值详情见 相关扩展字段 相关joinRoom定义

方法示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
RoomParams roomParams = new RoomParams();
roomParams.setPassword(RoomVariable.password);
roomParams.setRoomId(RoomVariable.serial);
roomParams.setHost(RoomVariable.host);

UserParams userParams = new UserParams();
userParams.setUserRole(userrole);
userParams.setUserId(RoomVariable.userid);
userParams.setNickname(RoomVariable.nickname);

TKRoomManager.getInstance().joinRoom(roomParams, userParams);

返回值说明

类型 说明
int 0:表示调用成功,非0:表示调用失败

joinRoomEx

简要描述 - 加入即时房间

  1. 无需在后台 创建房间,可以直接传入房间ID,然后进入房间。调用接口后,后台会以传入的房间ID创建房间。
  2. 必须有appId。调用此接口前,需先调用 init ,并且在 init 中传入 appId 。
  3. 必须有token。调用此接口前,需先生成token并传入RoomParams对象里,生成规则如下面样例。

接口名称

1
- (int)joinRoomEx(roomParams, userParams)

参数

参数名 必填 类型 说明
roomParams RroomParams 房间所需的基本参数,值详情见 相关扩展字段 相关joinRoom定义
userParams UserParams 用户所需的基本参数,值详情见 相关扩展字段 相关joinRoom定义

方法示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
    RoomParams roomParams = new RoomParams();
    UserParams userParams = new UserParams();
    String thirdRoomid = "1122334455";  //第三方房间Id
    String domain = "appId" ;  //企业域名
    String authkey = "authkey";  //企业key
    String userId = "22223333";
    String ts = String.valueOf(new Date().getTime());
    long expireTs = 3600;   //房间过期时间
    String originalText = "appId=" + domain + "&thirdRoomId=" + account +  "&userId=" + userId + "&ts=" + ts + "&expireTs=" + expireTs;
    SecretKey restoredKey = AESUtil.getKeyFromString(authkey);
    String token = AESUtil.encrypt(originalText, restoredKey,authkey);
    roomParams.setTkToken(token);
    roomParams.setThirdRoomId(thirdRoomid);
    userParams.setUserId(userId);
    TKRoomManager.getInstance().joinRoomEx(roomParams,userParams);
返回值说明

类型 说明
int 0:表示调用成功,非0:表示调用失败

leaveRoom

简要描述 - 退出教室

调用接口后,我和房间其他用户会收到相应的 回调。 1、我会接收到自己离开房间的回调:- (void)onRoomLeaved。 2、在房间其他用户收到我离开房间的回调:- (void)onUserLeft(RoomUser user)

接口名称
- - (int)leaveRoom()

参数

参数名 必填 类型 说明

方法示例

1
    int ret =TKRoomManager.getInstance().leaveRoom();
返回值说明

类型 说明
int 0:表示调用成功,非0:表示调用失败

getRoomProperties

简要描述 - 获取房间属性

需在调用 joinroom 接口后调用才能获取有效结果。 返回房间相关的所有信息,例如房间ID、房间类型、配置项等。 配置项:表示该房间是否开启了教学辅助功能,例如自动下课、答题器等等教学互动功能。

接口名称
- - JSONObject getRoomProperties();

方法示例

1
    jsonObject = TKRoomManager.getInstance().getRoomProperties();
返回值说明

类型 说明
JSONObject 房间相关信息的字典

getUser

简要描述 - 根据用户ID获取用户

RoomUser 是用户对象类,存储了用户的相关信息。 需在调用 joinroom 接口后调用才能获取有效结果。

接口名称
- - RoomUser getUser(String peerId)

参数

参数名 必填 类型 说明
peerId String 用户ID

方法示例

1
    RoomUser roomUser = TKRoomManager.getInstance().getUser(peerId);
返回值说明

类型 说明
RoomUser 如果房间中有这个用户ID的用户,则返回 RoomUser的用户对象,否则返回 null

getServiceList

简要描述 - 获取服务器列表

可用于切换链接的服务器。 需在调用 joinroom 接口后调用才能获取有效结果。

接口名称
- - getServiceList(TKRoomManagerObserver.OnGetServerListener listener)

方法示例

1
   TKRoomManager.getInstance().getServiceList(new OnGetServerListener);
返回值说明

类型 说明
onResult(List list) 若存在可用的服务器,则返回 List 集合对象,否则返回 null

getStreamStatus

简要描述 - 获取用户的上行音视频统计信息数据

获取某一用户的上行音视频网络统计数据,包括丢包、延迟、带宽等统计信息。若参数userIds数组为空,服务器会返回房间所有state为ms的流的网络状态,若数组中存放 用户ID,则返回指定流的网络状态。 需在调用 joinroom 接口后调用才能获取有效结果。 调用成功后,收到成功的回调函数:- (void)onGetStreamStatus(int errorCode, JSONObject streamStates)

接口名称
- - (void)getStreamStatus(String[] userIds)

参数

参数名 必填 类型 说明
peerId String[] 用户ID数组

方法示例

1
    TKRoomManager.getInstance().getStreamStatus(null);
返回值说明

类型 说明
int 0:表示调用成功,非0:表示调用失败