node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
191 lines (190 loc) • 6.16 kB
TypeScript
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;
}