跳转至

进出房间和房间信息

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

关于进房间的简要概述

  • 使用token方式加入房间:

    必须在参数 roomParams 中加入 tkTokentkPrivilegeExpiredTs 字段, 并且该接口需要的信息必须与生成 token 时使用的信息一致。 关于如何生成Token请查看相关文档。

  • 使用authKey方式加入房间:

    参数 roomParams 中 无需添加 tkTokentkPrivilegeExpiredTs 字段。

  • 关于房间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

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

需要优先在后台 创建房间,获取到房间ID后,调用此接口进入房间。

接口名称

1
    - (int)joinRoom(RoomParams roomParams)

参数

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

方法示例
authKey方式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
RoomParams roomParams = new RoomParams();
roomParams.setPassword(RoomVariable.password);
roomParams.setRoomId(RoomVariable.serial);
roomParams.setUserRole(userrole);
roomParams.setUserId(RoomVariable.userid);
roomParams.setNickname(RoomVariable.nickname);
roomParams.setTkVersion(RoomVariable.tkversion);
roomParams.setTkLowConsume(RoomVariable.tk_lowConsume);
roomParams.setIsRequirePassword(RoomVariable.isRequirePassword);
roomParams.setClientType(RoomVariable.clientType);
roomParams.setMobileNameOnList(RoomVariable.mobilenameNotOnList);
roomParams.setHost(RoomVariable.host);
roomParams.setPort(RoomVariable.port);
TKRoomManager.getInstance().joinRoom(roomParams);

返回值说明

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

joinRoomEx

简要描述 - 加入即时房间

  1. 无需在后台 创建房间,可以直接传入房间ID,然后进入房间。调用接口后,后台会以传入的房间ID创建房间。
  2. 必须有appKey。调用此接口前,需先调用 init ,并且在 init 中传入 appKey 。

接口名称

1
2
3
- (int)joinRoomEx(String roomId, String nickname, String thirdUid, Map<String, Object> params)

- (int)joinRoomEx(String roomId, String nickname, String thirdUid, Map<String, Object> userParams, Map<String, Object> tokenParams)
参数

参数名 必填 类型 说明
roomId String 房间ID
nickname String 昵称
third_uid String 用户ID
roomParams Map 房间自定义参数,Map类型,key值详情见 相关扩展字段 相关定义
userParams Map 自定义用户的初始化的信息,该信息会保存到 RoomUser 对象的 properties 属性中,可根据自身需求自定义。

方法示例
authKey方式:

1
2
3
    String userid = "1131223463fff";
    String roomId = "1473793911";
    joinRoomEx(roomid, nickname, null, null);
返回值说明

类型 说明
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(userIdAudio);
返回值说明

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

getServiceList

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

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

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

方法示例

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

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

getStreamStatus

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

获取某一用户的上行音视频网络统计数据,包括丢包、延迟、带宽等统计信息。 需在调用 joinroom 接口后调用才能获取有效结果。 调用成功后,收到成功的回调函数:- (void)onGetStreamStatus(int errorCode, JSONObject streamStates)

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

参数

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

方法示例

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

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

© 2016-2023 北京拓课网络科技有限公司 版权所有  京ICP备17018423号-1 京公网安备11010502043461号