跳转至
400-881-9892

文档中心

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

文档中心 互动课堂

对应文件 tkroommanager_oc.h

关于进房间的简要概述

  • 关于房间ID:

    普通房间:需要优先在后台 创建房间,获取到房间ID后,调用 joinroom 进房间。 即时房间:无需优先在后台创建房间,可直接调用 joinRoomEx 接口,传入房间ID,即可进入房间。

  • 关于用户ID问题:

    roomparamjson 若传入了用户ID,SDK会使用传入的userId,若不传入用户ID, SDK会自动生成一个userId。

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

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


joinRoomWithHost

  • 简要描述

    进入普通房间,房间需要在后台创建后才能进入

  • 函数原型

1
2
-(int)joinRoomWithHost:(NSDictionary *)roomjsonparams
             userParams:(NSDictionary *)userjsonparams;
- 参数 - 参数 > @param roomjsonparams 房间信息 @param userjsonparams 用户属性

  • roomjsonparams为map格式,内含进入房间所需的基本参数例如

    key值 说明
    tk_host 服务器地址,通常是global.talk-cloud.net
    tk_port 服务器http端口, 通常是443
    serial 房间号
    password 预约房间时指定的密码,注意不同身份对应不同密码
    extrainfo map扩展信息。房间的额外数据(非必要)
  • userjsonparams为map格式,用户自定义属性。基本参数例如

    key值 说明
    nickname 本地用户的昵称. 数据请以utf8 code传递
    userId 用户可指定id 如果传空 sdk会随机生成
    roleId 用户身份,0:老师;1:助教;2:学生;3:旁听;4:隐身用户
    extrainfo map扩展信息。自定义用户数据信息(非必要)
roomjsonparams,内含进入房间所需的基本参数例如: 房间号 "12345678"; 预约房间时指定的密码"1111"; 注意不同身份对应不同密码 roomparamjson.str = "{\"serial\": 13, \"password\": true}";
  • 使用示例
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    NSString *host = self.host;
    if (!self.host || self.host.length == 0) {
        host = tkHost;
    }
    NSString *nickname = self.nickname;
    if (!self.nickname || self.nickname.length == 0) {
        nickname = tkNickname;
    }
    NSString *roomID = self.roomID;
    if (!self.roomID || self.roomID.length == 0) {
        roomID = tkRoomID;
    }
    NSMutableDictionary *roomParams = [NSMutableDictionary dictionaryWithDictionary:@{@"serial": roomID}];
    if (self.password && self.password.length > 0) {
        [roomParams setObject:self.password forKey:@"password"];
    }

    [roomParams setObject:self.host forKey:@"tk_host"];
    [roomParams setObject:@(443) forKey:@"tk_port"];
    NSInteger uid = arc4random();
    NSMutableDictionary *userParams = [NSMutableDictionary dictionaryWithDictionary:@{@"nickname": nickname}];
    [userParams setObject:[NSString stringWithFormat:@"%ld",(long)uid] forKey:@"userId"];
    [userParams setObject:@(2) forKey:@"roleId"];
    [_mgr joinRoomWithHost:roomParams userParams:userParams];

joinRoomEx

  • 简要描述

    进入即时房间,房间无需在后台创建

  • 函数原型

    -(int)joinRoomEx:(NSDictionary )roomjsonparams userParams:(NSDictionary )userjsonparams;

  • 参数

    @param roomjsonparams 房间信息 @param userjsonparams 用户属性

  • roomjsonparams为map格式,内含进入房间所需的基本参数例如

    key值 说明
    tk_host 服务器地址,通常是global.talk-cloud.net
    tk_port 服务器http端口, 通常是443
    tk_sign 签名,用于身份校验。(AES加密 加密格式:aes(appId=企业domain&thirdRoomId=第三方教室号&userId=123&ts=1705560259&expireTs=3600) 密钥为企业authkey)
    serial 房间号
    password 预约房间时指定的密码,注意不同身份对应不同密码
    extrainfo map扩展信息。房间的额外数据(非必要)
  • userjsonparams为map格式,用户自定义属性。基本参数例如

    key值 说明
    nickname 本地用户的昵称. 数据请以utf8 code传递
    userId 用户可指定id 如果传空 sdk会随机生成
    roleId 用户身份,0:老师;1:助教;2:学生;3:旁听;4:隐身用户
    extrainfo map扩展信息。自定义用户数据信息(非必要)
  • 使用示例

    参考joinroom的使用方法

leaveRoom

  • 简要描述

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

  • 函数原型

    - (int)leaveRoom;

setRoomProfile

  • 简要描述

    设置房间类型

  • 函数原型

    - (int)setRoomProfile:(TKRoomProfile)profile; TKRoomProfile详情请点击参考定义

getRoomProperties

  • 简要描述

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

  • 函数原型

    - (NSDictionary *)getRoomProperties;

  • 参数 | 参数 | 说明 | | ---- | ---- | | NSDictionary | 房间相关信息的字典 |

getServerList

  • 简要描述

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

  • 函数原型

    - (NSArray <TKServerInfo *>*)getServerList; TKServerInfo

  • 参数 | 参数 | 说明 | | ---- | ---- | | NSArray | 若存在可用的服务器,则返回 NSArray 数组对象,否则返回 nil。 |