node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
144 lines (143 loc) • 4.76 kB
TypeScript
import { V2NIMConnectQualityInfo, V2NIMDataSyncDetail, V2NIMError, V2NIMKickedOfflineDetail, V2NIMLoginClient, V2NIMLoginOption } from '../v2_def/v2_nim_struct_def';
import { EventEmitter } from 'eventemitter3';
import { V2NIMReconnectDelayProvider } from '../v2_def/v2_nim_callback_def';
import { V2NIMConnectStatus, V2NIMDataSyncState, V2NIMDataSyncType, V2NIMLoginClientChange, V2NIMLoginStatus } from '../v2_def/v2_nim_enum_def';
export declare interface V2NIMLoginListener {
/** 登录状态变更回调 */
loginStatus: [V2NIMLoginStatus];
/** 登录失败回调 */
loginFailed: [V2NIMError];
/** 被踢下线回调 */
kickedOffline: [V2NIMKickedOfflineDetail];
/** 登录客户端变更回调 */
loginClientChanged: [V2NIMLoginClientChange, V2NIMLoginClient[]];
/** 连接状态变更回调 */
connectStatus: [V2NIMConnectStatus];
/** 连接断开回调 */
disconnected: [V2NIMError | null];
/** 连接失败回调 */
connectFailed: [V2NIMError];
/** 数据同步回调 */
dataSync: [V2NIMDataSyncType, V2NIMDataSyncState, V2NIMError | null];
/** 连接质量变化回调。当前仅 QUIC 路径探测会触发,用于提示网络质量变差或已恢复,不改变连接状态。 */
connectQuality: [V2NIMConnectQualityInfo];
}
export declare class V2NIMLoginService extends EventEmitter<V2NIMLoginListener> {
instance: any;
constructor();
/**
* @brief 登录接口
* @param accountId 账号
* @param token 密码
* @param option 登录选项
* @returns Promise<void>
* @example
* ```javascript
* await v2.loginService.login('accountId', 'token', {})
* ```
*/
login(accountId: string, token: string, option: V2NIMLoginOption): Promise<void>;
/**
* @brief 登出接口
* @returns Promise<void>
* @example
* ```javascript
* await v2.loginService.logout()
* ```
*/
logout(): Promise<void>;
/**
* @brief 获取当前登录用户
* @returns string 当前登录用户
* @example
* ```javascript
* const user = v2.loginService.getLoginUser()
* ```
*/
getLoginUser(): string;
/**
* @brief 获取登录状态
* @returns V2NIMLoginStatus 登录状态
* @example
* ```javascript
* const status = v2.loginService.getLoginStatus()
* ```
*/
getLoginStatus(): V2NIMLoginStatus;
/**
* @brief 获取登录客户端列表
* @returns V2NIMLoginClient[] 登录客户端列表
* @example
* ```javascript
* const clients = v2.loginService.getLoginClients()
* ```
*/
getLoginClients(): V2NIMLoginClient[];
/**
* @brief 获取当前登录客户端
* @returns V2NIMLoginClient 当前登录客户端
* @example
* ```javascript
* const client = v2.loginService.getCurrentLoginClient()
* ```
*/
getCurrentLoginClient(): V2NIMLoginClient;
/**
* @brief 踢掉登录客户端下线
* @param client 登录客户端
* @returns Promise<void>
* @example
* ```javascript
* const otherClients = v2.loginService.getLoginClients()
* await v2.loginService.kickOffline(otherClients[0])
* ```
*/
kickOffline(client: V2NIMLoginClient): Promise<void>;
/**
* @brief 获取被踢下线原因
* @returns V2NIMKickedOfflineDetail 被踢下线原因
* @example
* ```javascript
* const detail = v2.loginService.getKickedOfflineDetail()
* ```
*/
getKickedOfflineDetail(): V2NIMKickedOfflineDetail;
/**
* @brief 获取连接状态
* @returns V2NIMConnectStatus 连接状态
* @example
* ```javascript
* const status = v2.loginService.getConnectStatus()
* ```
*/
getConnectStatus(): V2NIMConnectStatus;
/**
* @brief 获取数据同步状态
* @returns V2NIMDataSyncDetail[] 数据同步状态列表
* @example
* ```javascript
* const details = v2.loginService.getDataSync()
* ```
*/
getDataSync(): V2NIMDataSyncDetail[];
/**
* @brief 获取聊天室 link 地址
* @param roomId 聊天室 ID
* @returns Promise<Array<string>>
* @example
* ```javascript
* const linkAddresses = await v2.loginService.getChatroomLinkAddress('roomId')
* ```
*/
getChatroomLinkAddress(roomId: string): Promise<Array<string>>;
/**
* @brief 设置获取重连延时回调
* @param provider 获取重连延时回调
* @returns void
* @example
* ```javascript
* v2.loginService.setReconnectDelayProvider(provider)
* ```
*/
setReconnectDelayProvider(provider: V2NIMReconnectDelayProvider): void;
}