UNPKG

@hongtangyun/rooms-sdk

Version:

JavaScript SDK Client for hongtangyun rooms-sdk.

284 lines (283 loc) 7.85 kB
/// <reference types="node" /> import { AxiosRequestConfig } from 'axios'; import { EventEmitter } from 'events'; import { Config, COS_INFO, MicroTempInfo, OSS_INFO, RoomActionsItem, RoomInitActionsItem, RoomUserType, RtcInfoType, SDKRoomInfoType, StorageType } from './common/Classes'; import SocketSDK from './socket'; import { checkAction, createRoomAction, getActionKey } from './socket/utils'; import { GetRoomAbnormalActionsQuery, GetRoomActionsQuery, GetRoomChatActionsQuery, UserRoleInfo } from './types'; export declare enum EE_EVENTS { 'sdk-ready' = "sdk-ready", 'sdk-error' = "sdk-error", '__TIME_ANIME_LOOP__' = "__TIME_ANIME_LOOP__" } export declare class SDK extends EventEmitter { userInfoCache: Map<number, RoomUserType>; initComplete: boolean; /** * 时间差 毫秒 */ dateDiff: number; /** * 时间 */ timer: { id: number; }; conf: Config; roomData: SDKRoomInfoType; socket: SocketSDK; isSubRole: boolean; roleMain: number | undefined; roleSub: number | undefined; /** * 用户角色 */ role: number | undefined; /** * 用户id */ id: number | undefined; /** * 用户id */ roomid: string | undefined; constructor(); destroy(): void; /** * 默认配置 * 同时检测本地时间是否正常 * @param config * @returns */ config(config: Config): Promise<true>; /** * 检测是否config配置 */ checkIsConfig(): void; timeAnimeLoop: () => { id: number; }; clearTimeAnimeLoop: () => void; /** * 获取用户信息 * @param id * @returns */ getUserInfo: (id: number) => RoomUserType | undefined; /** * 获取服务器时间 * @returns */ getServerTime: () => Promise<number>; /** * 获取当前时间 * @returns 返回毫秒数字 */ getTime(): number; /** * 设置服务端时间 * @param serverTime 服务器时间 * @returns */ setTime(serverTime: number): number; /** * 获取当前房间最新初始状态动作 * @param userCustomRoomid 包含自定义房间 * @param refresh 是否忽略缓存,拉取最新生成 * @returns */ getRoomInitActions(userCustomRoomid?: string[], refresh?: boolean): Promise<RoomInitActionsItem[]>; /** * 获取房间历史操作动作 * @returns */ getRoomActions(query: GetRoomActionsQuery): Promise<{ page: number; pageSize: number; total: number; list: RoomActionsItem[]; }>; /** * 获取房间聊天历史操作动作 * @returns */ getRoomChatActions(query: GetRoomChatActionsQuery): Promise<{ page: number; pageSize: number; total: number; list: RoomActionsItem[]; }>; /** * 获取房间异常 */ getRoomAbnormalActions(query: GetRoomAbnormalActionsQuery): Promise<{ list: RoomActionsItem[]; total: number; pageSize: number; page: number; }>; /** * 获取公告 * @param status * @param userCustomRoomid * @returns */ getRoomNoticeActions(query: GetRoomChatActionsQuery): Promise<{ page: number; pageSize: number; total: number; list: RoomActionsItem[]; }>; /** * 获取socket实例 * @returns */ getSocket(): Promise<SocketSDK>; /** * 获取房间数据 * @returns */ getRoomInfo(): Promise<SDKRoomInfoType>; /** * 获取子账户token * @param subAuthId * @returns */ createSubAuthToken(subAuthId: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9): Promise<string>; /** * 创建新的webrtc房间 * @param customRoomid 自定房间id * @param token 用新token获取 * @returns */ createWebRTCRoom(customRoomid: string, newToken?: string): Promise<RtcInfoType>; /** * 获取房间模板信息 * @param id * @returns */ getTempInfo(id: string): Promise<MicroTempInfo>; /** * 生成房间url * @param roomid 房间id * @param token 用户token * @returns */ getRoomUrl(token: string): Promise<string>; /** * 检测token是否有效 * @param token * @returns */ checkToken(targeToken?: string): Promise<boolean>; getMicroApps(ids?: string[]): Promise<Array<MicroTempInfo>>; setMicroApps(app: MicroTempInfo | Array<MicroTempInfo>): MicroTempInfo[]; getLocalMicroApps(): MicroTempInfo[]; setLocalMicroApps(app: MicroTempInfo | Array<MicroTempInfo>): MicroTempInfo[]; /** * 获取线上存储配置 */ getStorage(type: StorageType): Promise<{ type: StorageType; data: COS_INFO | OSS_INFO; }>; /** * 获取代理接口数据 被代理接口必须是post接口 * @param url 接口url * @param data * @returns */ getProxyApiData(url: string, data?: AxiosRequestConfig['data']): Promise<any>; /** * 获取试卷列表 */ getTestPaperList(): Promise<{ pageSize: number; total: number; page: number; list: RoomActionsItem[]; }>; /** * 获取试卷详情 * @param paperid */ getTestPaperForID(paperid: string): Promise<RoomActionsItem>; /** * 获取所有已下发试卷 * @param uid * @returns */ getGiveTestPape(uid?: number): Promise<RoomActionsItem>; /** * 下发试卷 * @param paperid */ giveTestPaperForID(paperid: string, uid?: number | number[] | undefined): Promise<RoomActionsItem>; /** * 取消下发试卷 * @param paperid */ unGiveTestPaperForID(paperid: string, uid?: number | number[] | undefined): Promise<RoomActionsItem>; /** * 获取已下发给用户的试卷列表 * @param page * @param pageSize * @returns */ getUserTestPaperList(page?: number, pageSize?: number): Promise<RoomActionsItem>; /** * 获取已下发给用户的试卷详情 for paperid * @param page * @param pageSize * @returns */ getUserTestPaperInfo(pageid: string): Promise<RoomActionsItem>; /** * 获取自己的试卷答案 * @param paperid */ getTestPaperAnswerForID(paperid: string): Promise<boolean>; /** * 提交自己的试卷答案 * @param paperid */ saveTestPaperAnswerForID(paperid: string, data: any): Promise<{ paperid: string; data: any; }>; /** * 自动提交自己的试卷答案 * @param paperid */ autoSavePaperAnswerForID(paperid: string, data: any): Promise<{ paperid: string; data: any; }>; /** * 开始录制 * @param data * @param recordToken // 如用当前角色token 会使当token用户退出 * @returns */ startRecord(data: any, recordToken: string): Promise<{ paperid: string; data: any; }>; /** * 停止录制 * @param data * @returns */ stopRecord(data?: any): Promise<{ paperid: string; data: any; }>; } export declare const client: SDK; export declare const utils: { createRoomAction: typeof createRoomAction; checkAction: typeof checkAction; getActionKey: typeof getActionKey; checkUserRole: (role: number) => UserRoleInfo | undefined; getRandomUUID(data?: string): string; };