对应文件 tkroommanager_c.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 回调
joinroom
-
简要描述
进入普通房间,房间需要在后台创建后才能进入
-
函数原型
1 2 3
int joinroom(struct roomclient* client , tkstring roomparamjson , tkstring userproperty)
-
参数 > @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扩展信息。自定义用户数据信息(非必要) -
使用示例
1 2 3 4 5 6 7 8 9 10
const char* host = "global.talk-cloud.net"; const int port = 443; const char* nickname = "用户定义名称"; const char* third_uid = "123456"; struct tkstring roomparamjson, userproperty; roomparamjson.str = "{\"tk_host\": host, \"tk_port\": port,\"serial\": 13, \"password\": true}"; userproperty.str = "{\"nickname\": 名字, \"roleId\": 0}";; joinroom(client, host, port, nickname, third_uid, roomparamjson, userproperty);
joinRoomEx
-
简要描述
进入即时房间,房间无需在后台创建
-
函数原型
- 参数1 2 3
int joinRoomEx(struct roomclient* client , tkstring roomjsonparams , tkstring 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、我会接收到自己离开房间的回调:on_roomleaved 2、在房间其他用户收到我离开房间的回调:on_roomuserleft
-
函数原型
int leaveroom(struct roomclient* client);
setroomprofile
-
简要描述
设置房间类型
-
函数原型
int setroomprofile(struct roomclient* client, TK_ROOM_PROFILE_C profile)
TK_ROOM_PROFILE_C详情请点击参考定义
getroomproperties
-
简要描述
获取房间属性 需在调用 joinroom 接口后调用才能获取有效结果。 返回房间相关的所有信息,例如房间ID、房间类型、配置项等。 配置项:表示该房间是否开启了教学辅助功能,例如自动下课、答题器等等教学互动功能。
-
函数原型
int getroomproperties(struct roomclient* client,char properties[])
-
参数
参数 说明 properties 返回的房间信息
getserverlist
-
简要描述
获取服务器列表 可用于切换链接的服务器。 需在调用 joinroom 接口后调用才能获取有效结果。
-
函数原型
int getserverlist(struct roomclient* client, ServerInfo_C list[], int& size)
ServerInfo_C -
参数
参数 说明 list 返回的服务器信息,存放在数组中 size 服务器信息的大小(有几条)