跳转至

对应文件 tkroommanager.h

关于进房间的简要概述

  • 关于房间ID:

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

  • 关于用户ID问题:

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

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

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


joinRoom

  • 简要描述

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

  • 参数

    @param host: 服务器地址,通常是global.talk-cloud.net @param port:服务器http端口, 通常是443 @param nickname :本地用户的昵称. 数据请以utf8 code传递 @param third_uid :用户可指定id 如果传空 sdk会随机生成 @param roomjsonparams

    roomjsonparams为map格式,内含进入房间所需的基本参数例如: params.put("serial", "12345678"); 房间号 params.put("password", "1111"); 预约房间时指定的密码,注意不同身份对应不同密码
    @param userjsonparams map格式,可为null ,用户自定义属性

  • 返回值

    @return 0 表示成功,反之为非零值

  • 函数原型

    1
    2
    3
    4
    5
    6
    int joinRoom(const std::string& host
            , const int          port
            , const std::string& nickname
            , tk_uid third_uid
            , const tk::VariantMap& roomjsonparams
            , const tk::VariantMap& userjsonparams = tk::VariantMap())
    
  • 使用示例

    1
    2
    3
    4
    5
    tk::VariantMap obj;
    //TKROOMID 和 TKROOMPWD  宏定义都在 tkdefine.h文件中够可以查看
    obj[TKROOMID] = "12345678"  //房间号
    obj[TKROOMPWD] = "123"    //密码,不同身份对应不同密码
    m_sdk->joinRoom("global.talk-cloud.net", 443, "自定义的名字", "", obj);
    

joinRoomEx

  • 简要描述

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

  • 参数

    @param roomId : 教室号 @param nickname : 本地用户的昵称。 数据请以utf8 code传递 @param third_uid : 用户指定uid @param userjsonparams map格式,可为null ,用户自定义属性

  • 返回值

    @return 0 如果成功,则为非零值

  • 函数原型

    1
    2
    3
    4
    int joinRoomEx(const std::string& roomId
            , const std::string& nickname
            , tk_uid third_uid
            , const tk::VariantMap& userjsonparams = tk::VariantMap())
    

leaveRoom

  • 简要描述

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

  • 返回值

    @return 0 success

  • 函数原型

    int leaveRoom();

setRoomProfile

  • 简要描述

    设置房间类型

  • 参数

    @TK_ROOM_PROFILE profile

  • 函数原型

    int setRoomProfile(TK_ROOM_PROFILE profile);

getRoomProperties

  • 简要描述

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

  • 返回值

    tk::VariantMap json param key-value

  • 函数原型

    tk::VariantMap getRoomProperties();

getRoomUserByID

  • 简要描述

    获取指定用户对象 : 结果会以 回调函数onGotUserInfo来返回 TKRoomUser 是用户对象类,存储了用户的相关信息。 需在调用 joinroom 接口后调用才能获取有效结果。

  • 参数

    @tk_uid peerid 用户ID; typedef std::string tk_uid;

  • 返回值

    结果会以 回调函数onGotUserInfo来返回

  • 函数原型

    void getRoomUserByID(tk_uid peerid)

getServerList

  • 简要描述

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

  • 参数

    @ServerInfo list[] : 获取到的结果会从这个参数返回,外面需要传进来一个实例对象指针

  • 函数原型

    int getServerList(ServerInfo list[], int& size) ServerInfo

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