UNPKG

node-nim

Version:

NetEase IM nodejs wrapper based on NetEase IM C++ SDK

191 lines (190 loc) 6.16 kB
import { V2NIMInitOption, V2NIMError, V2NIMChatroomEnterParams, V2NIMChatroomEnterResult, V2NIMChatroomInfo, V2NIMChatroomKickedInfo } from 'ts/v2_def/v2_nim_struct_def'; import { EventEmitter } from 'eventemitter3'; import { V2NIMChatroomService } from './v2_nim_chatroom_service'; import { V2NIMStorageService } from './v2_nim_storage_service'; import { V2NIMChatroomQueueService } from './v2_nim_chatroom_queue_service'; export declare interface V2NIMChatroomClientListener { /** @brief 聊天室状态 */ chatroomStatus: (status: number, error: V2NIMError) => void; /** @brief 进入聊天室 */ chatroomEntered: () => void; /** @brief 退出聊天室 */ chatroomExited: (error: V2NIMError) => void; /** @brief 自己被踢出聊天室 */ chatroomKicked: (kickedInfo: V2NIMChatroomKickedInfo) => void; } export declare class V2NIMChatroomClient extends EventEmitter<V2NIMChatroomClientListener> { instance: any; chatroomService: V2NIMChatroomService; chatroomQueueService: V2NIMChatroomQueueService; storageService: V2NIMStorageService; static chatroomSdk: any; constructor(instanceId?: number); /** * @brief 初始化 * @param option 初始化选项 * @returns V2NIMError * @example * ```javascript * const result = await V2NIMChatroomClient.init({ * appKey: 'your app key' * }) * if (result) { * console.error(result) * } * ``` */ static init(option: V2NIMInitOption): V2NIMError | null; /** * @brief 反初始化 * @returns void * @warning 请在退出程序前调用此方法 * @example * ```javascript * V2NIMChatroomClient.uninit() * ``` */ static uninit(): void; /** * @brief 创建聊天室客户端实例 * @returns V2NIMChatroomClient * @pre 必须在调用此方法前调用 V2NIMChatroomClient::init * @note 建议保存持有实例 ID 而不是实例本身 * @example * ```javascript * const chatroomClient = V2NIMChatroomClient.newInstance() * ``` */ static newInstance(): V2NIMChatroomClient; /** * @brief 销毁聊天室客户端实例 * @param instanceId 聊天室客户端实例 ID * @returns void * @pre 必须在调用此方法前调用 V2NIMChatroomClient::init * @warning 严禁在调用此方法后访问对应的聊天室客户端实例 * @example * ```javascript * V2NIMChatroomClient.destroyInstance(instanceId) * ``` */ static destroyInstance(instanceId: number): void; /** * @param instanceId 聊天室客户端实例 ID * @returns V2NIMChatroomClient * @pre 必须在调用此方法前调用 V2NIMChatroomClient::init * @example * ```javascript * const chatroomClient = V2NIMChatroomClient.getInstance(instanceId) * ``` */ static getInstance(instanceId: number): V2NIMChatroomClient | null; /** * @brief 获取聊天室实例列表 * @returns Array<V2NIMChatroomClient> * @pre 必须在调用此方法前调用 V2NIMChatroomClient::init * @example * ```javascript * const instanceList = V2NIMChatroomClient.getInstanceList() * ``` */ static getInstanceList(): Array<V2NIMChatroomClient>; /** * @brief 销毁所有聊天室客户端实例 * @returns void * @pre 必须在调用此方法前调用 V2NIMChatroomClient::init * @warning 严禁在调用此方法后访问任何聊天室客户端实例, 此方法会退出聊天室, 耗时可能较长 * @example * ```javascript * V2NIMChatroomClient.destroyAll() * ``` */ static destroyAll(): void; /** * @brief 获取聊天室客户端实例 ID * @returns size_t * @example * ```javascript * const instanceId = chatroomClient.getInstanceId() * ``` */ getInstanceId(): number; /** * @brief 更新 appKey * @param appKey - 新的 App key * @returns V2NIMError | null * @example * ```javascript * const result = chatroomClient.updateAppKey('your new app key') * if (result) { * console.error(result) * } * ``` */ updateAppKey(appKey: string): V2NIMError | null; /** * @brief 进入聊天室 * @param roomId 聊天室 ID * @param enterParams 进入聊天室相关参数 * @returns Promise<V2NIMChatroomEnterResult> * @example * ```javascript * const result = await chatroomClient.enter('your room id', { * accountId: 'your account id', * token: 'your token', * roomNick: 'your room nick', * linkProvider: (roomId, account) => { * return ['chatroom link...'] * } * }) * if (result) { * console.error(result) * } * ``` */ enter(roomId: string, enterParams: V2NIMChatroomEnterParams): Promise<V2NIMChatroomEnterResult>; /** * @brief 退出聊天室 * @returns void * @example * ```javascript * chatroomClient.exit() * ``` */ exit(): void; /** * @brief 查询聊天室信息 * @returns V2NIMChatroomInfo * @example * ```javascript * const chatroomInfo = chatroomClient.getChatroomInfo() * ``` */ getChatroomInfo(): V2NIMChatroomInfo; /** * @brief 获取聊天室服务 * @returns V2NIMChatroomService * @example * ```javascript * const chatroomService = chatroomClient.getChatroomService() * ``` */ getChatroomService(): V2NIMChatroomService; /** * @brief 获取聊天室队列服务 * @returns V2NIMChatroomQueueService * @example * ```javascript * const chatroomQueueService = chatroomClient.getChatroomQueueService() * ``` */ getChatroomQueueService(): V2NIMChatroomQueueService; /** * @brief 获取存储服务 * @returns V2NIMStorageService * @example * ```javascript * const storageService = chatroomClient.getStorageService() * ``` */ getStorageService(): V2NIMStorageService; }