import { default as XYRTCClient } from '../../main/client'; import { default as Logger } from '../../tools/log/logger'; import { XYBaseModule } from '../../type/index'; import { XY_WHITEBOARD_DATA, XYAnnotationState } from './index.type'; /** * 白板消息模块 * 职责: * 1、处理所有远端白板缓存消息 * 2、处理远端实时版本消息(本地端过滤掉) * 3、提供增删改白板操作 */ export declare class XYArtboard implements XYBaseModule { private client; logger: Logger; private artboardKind; private socketTask; private seq; private cacheHistorySeq; private state; private editLineInfo; private socketUrl; private whiteBoardInfo; private pageId; private isGetPages; constructor(client: XYRTCClient); /** * 开启白板分享 */ startWhiteboard(): Promise; /** * 结束白板分享 */ stopWhiteboard(): Promise; /** * 发送白板数据 * * @param { XY_WHITEBOARD_DATA } data - 白板数据 */ sendWhiteboardData(data: XY_WHITEBOARD_DATA): Promise; /** * 监听信令下发白板状态变更消息 * * @param data */ onWhiteboardStateChanged(data: any): void; /** * 开始批注分享 */ startAnnotation(): Promise; /** * 发送批注数据 * * @param data */ sendAnnotationData(data: any): Promise; /** * 结束批注分享 */ stopAnnotation(): Promise; /** * 监听信令下发批注状态变更消息 * * @param data */ onAnnotationStateChanged(data: XYAnnotationState): void; /** * 根据serverConfig下发的白板域名,获取最终的白板wss地址 * * @param { string } url - 信令下发的url * @returns { string } 最终的白板wss地址 */ private getWhiteboardUrl; /** * 连接白板 * 注意: 一次会议连接一次,无需断开;如果异常断开,再重新连接 * * @param { string } url - 白板wss连接地址 * @param { boolean } start - 是否开启 */ private connectedBoardWss; /** * 1. 白板连接ws后,获取所有页信息 */ private getPages; /** * 2. 判断当前是否需要创建页、或者获取所有线的信息 * * @param { XY_WHITEBOARD_DATA } data - 信息 */ private calcPageList; /** * 3.1 创建页 */ private addPages; /** * 3.2 获取当前页的所有线 */ private getLines; /** * 处理Socket接收远端消息 */ private handleSocketReceiveMessage; /** * 处理白板数据 */ private handleWhiteBoradData; private dealEditData; /** * 推送白板更新数据 * * @param { XY_WHITEBOARD_EVENT_DATA } event - 事件数据 */ private emitWhiteBoradOperateMsg; /** * 处理Socket连接打开消息 */ private handleSocketOpen; /** * 处理Socket关闭消息 */ private handleSocketClose; /** * 处理Socket超时消息 */ private handleSocketTimeout; /** * 处理Socket错误消息 */ private handleSocketError; /** * 处理Socket重连消息 */ private handleSocketReconnect; /** * 发送websocket消息方法 * * @param { any } data - 消息 * @param { boolean } isAutoAdd - 序列号是否自动增加 * @param { boolean } isLog - 是否写入日志 */ sendSocketMessage(data: any, isLog?: boolean): void; /** * 销毁画板模块 */ destroy(): void; }