文档反馈
文档反馈

房间管理

初始化白板前,使用joinRoom创建并加入白板房间。joinRoom的参数及说明如下:

whiteboardSDK.joinRoom({
    channel: string,
    createRoom: boolean
}, joinRoomCallbacks)

一般来说,可以由教师端设置createRoomtrue,学生端设置createRoomfalse。若学生加入房间的时间可能早于教师,也可以将所有端都设置createRoomtrue

房间状态变化

joinRoom第二个参数为房间状态变化时的回调函数。目前SDK提供了若干个回调函数,它们分别在房间处于connected, willreconnect,以及disconnected时触发。

SDK只有处于connected时,才能够进行编辑。当SDK由其他状态变为connected时,SDK会自动同步断开连接期间, 其他用户在房间内的编辑数据。

SDK使用者应该重点关注ondisconnected事件,并根据ondisconnected事件抛出的错误提示。

除了连接状态外,开发者如果需要通过程序触发一些行为,比如在加载白板后跳页,脚本绘制涂鸦等,则开发者还需要关注白板是否同步成功。只有同步成功后,白板才能够正常编辑。开发者可以通过设置onSyncStartonSyncFinish回调函数来判断白板是否处于同步状态中

whiteboardSDK.joinRoom(joinRoomParams, {
    ondisconnected: (err) => {}
    onwillreconnect: Function
    onconnected: Function
    onSyncStart: Function
    onSyncFinish: Function
})

主动离开房间

如果不使用白板了,应该调用下面的接口离开房间。

whiteboardSDK.destroy()

异常状态

在加入房间时,应该考虑加入失败的情况。在加入失败时,SDK会抛出错误,提示用户加入失败的原因。

whiteboardSDK
    .joinRoom(joinRoomParams, joinRoomCallbacks)
    .then(function(drawPlugin) {

    })
    .catch(function(err) {
        /**
         *  err:
         *    type: LoginError | CreateRoomError | JoinRoomError
         *    code: number | string
         *     msg: string
         */
    })

错误:登陆失败

err.typeLoginError。可能为appkey, accounttoken不匹配。注意token需要通过md5加密。如果遇到该问题可以向云信销售人员联系。

错误:创建房间失败

err.typeCreateRoomError。请根据具体的错误提示信息排查问题。

错误:加入房间失败

err.typeJoinRoomError。最常见的错误原因是尝试进入不存在的房间,比如joinRoom时的createRoom参数设置的为false

×

反馈成功

非常感谢您的反馈,我们会继续努力做得更好。