@hongtangyun/rooms-sdk
Version:
JavaScript SDK Client for hongtangyun rooms-sdk.
48 lines (47 loc) • 1.89 kB
TypeScript
/// <reference types="node" />
import { Socket } from 'socket.io-client';
import { EventEmitter } from 'events';
import queue from 'queue';
import * as Types from './types';
import { RoomEvents, IRoomActions } from './types';
import { RoomActionsItem } from '../common/Classes';
interface Options {
url: string;
roomid: string;
uid: number;
}
declare class SocketSDK {
ee: EventEmitter;
config: Options;
client: Socket;
queueOn: queue;
queueEmit: queue;
init(url: string): Promise<boolean>;
/**
* 生成房间操作动作
* @param action 动作名
* @param data 动作数据
* @param to 指定用户
* @param customroom 指定自定义房间id
* @returns 动作
*/
createRoomAction<T extends keyof IRoomActions, K extends IRoomActions[T]>(action: T, data: K, to?: number | string | Array<number | string> | Types.ToSystemEnum, customroom?: string[]): RoomEvents | undefined;
queueOnRoomsEventsAdd(action: RoomEvents | undefined, isInit?: boolean): void;
queueEmitRoomsEventsAdd(action: RoomEvents, isInit?: boolean): void;
on(cb: (action: RoomActionsItem) => void): void;
off(cb: (action: RoomActionsItem) => void): void;
rooms: () => Promise<string[]>;
has: (roomid: string) => Promise<boolean>;
emit<T extends keyof Omit<IRoomActions, keyof Types.ClientActions | keyof Types.SystemActions>, K extends IRoomActions[T]>(action: T, data: K, to?: number | string | Array<number | string> | Types.ToSystemEnum, customroom?: string[]): void;
/**
* 获取服务器时间戳
* @returns number
*/
getServerTime(): Promise<number>;
addListenerServerTime(listener: (data: {
time: number;
}) => void): void;
removeListenerServerTime(listener?: any): void;
}
export default SocketSDK;
export { Types };