node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
124 lines (123 loc) • 5.74 kB
TypeScript
import { NIMClientAPI, GetCurrentServerTimeCallback, LoginCallback, LogoutCallback, MultiportPushConfigCallback, NIMLoginState, NIMLogoutType, SDKConfig, MultiSpotLoginRes, KickOtherRes, KickoutRes, LoginRes, NIMResCode } from '../nim_def/client_def';
import { EventEmitter } from 'eventemitter3';
export declare interface NIMClientEvents {
/** NIM客户端掉线 */
disconnect: [];
/** NIM客户端多点登录通知 */
multispotLogin: [MultiSpotLoginRes];
/** 多端推送开关同步 */
syncMultiportPushConfig: [number, boolean];
/** NIM客户端被踢 */
kickOtherClient: [KickOtherRes];
/** NIM客户端将本帐号的其他端踢下线结果 */
kickout: [KickoutRes];
/** NIM客户端自动重连 */
relogin: [LoginRes];
}
export declare class NIMClient extends EventEmitter<NIMClientEvents> {
client: NIMClientAPI;
constructor();
/** 注册全局回调 */
initEventHandlers(): void;
/** NIM SDK初始化
* @param appKey 应用注册的APP KEY
* @param appDataDir 推荐用户目录放置在系统目录AppData\Local,默认只需要传入目录名,SDK会默认在系统目录下创建该级用户目录。如果要使用其他自定义路径,需传入绝对路径路径,并确保该目录有正确的读写权限。
* @param appInstallDir Deprecated
* @param config 初始化参数
* @return bool 返回值true: 成功, false: 失败
*/
init(appKey: string, appDataDir: string, appInstallDir: string, config: SDKConfig): boolean;
/** NIM客户端登录
* @param appKey
* @param account 帐号
* @param password 密码
* @param cb 登录流程的回调函数
* @param jsonExtension json扩展参数(v5.7.0 项目增加自定义参数字段)
* @return bool 检查参数如果不符合要求则返回失败
* @note
* <pre>
* 200:成功
* 302:账号或密码错误
* 403:禁止操作
* 408:请求超时
* 414:参数错误
* 415:网络连接出现错误
* 416:频率超限
* 422:账号被禁用
* </pre>
*/
login(appKey: string, account: string, password: string, cb: LoginCallback | null, jsonExtension: string): Promise<[LoginRes]>;
/** NIM客户端注销/退出
* @param logoutType Logout操作类型,其定义见nim_client_def.h
* @param cb 注销/退出的回调函数
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return void 无返回值
* @note
* <pre>
* 200:成功
* 500:未知错误
* </pre>
*/
logout(logoutType: NIMLogoutType, cb: LogoutCallback | null, jsonExtension: string): Promise<[NIMResCode]>;
/** NIM SDK清理
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return void 无返回值
*/
cleanup(jsonExtension: string): void;
/** 获取SDK配置
* @return SDKConfig 返回值SDKConfig的引用 const类型,不可试图修改
*/
getSDKConfig(): SDKConfig;
/** 获取客户端登录状态
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return NIMLoginState 登录状态
*/
getLoginState(jsonExtension: string): NIMLoginState;
/** NIM客户端手动重连(注意 APP需要统一处理自动重连/手动重连的回调,因为如果处于某次自动重连的过程中调用手动重连接口,不起作用!)
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return void 无返回值
*/
relogin(jsonExtension: string): void;
/** 将本帐号的其他端踢下线
* @param clients 设备标识
* @return bool 检查参数如果不符合要求则返回失败, 接口调用成功后的结果通过注册RegKickOtherClientCb回调得到
*/
kickOtherClient(clients: Array<string>): void;
/** (全局回调)设置多端推送
* @param switch_on 开关
* @param cb 回调函数
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return void
* @note
* <pre>
* 200:成功
* </pre>
*/
setMultiportPushConfigAsync(switch_on: boolean, cb: MultiportPushConfigCallback | null, jsonExtension: string): Promise<[NIMResCode, boolean]>;
/** 获得多端推送设置
* @param cb 回调函数
* @param jsonExtension json扩展参数(备用,目前不需要)
* @return void
*/
getMultiportPushConfigAsync(cb: MultiportPushConfigCallback | null, jsonExtension: string): Promise<[NIMResCode, boolean]>;
/** 获取SDK版本号
* @return string 版本号
*/
getSDKVersion(): string;
/** 获取当前服务器时间
* @param cb 操作结果的回调函数
* @param calc_local 是否在本地计算,false:直接到服务端查询 ,true:根据上次查询到的服务端时间与本地系统启动时间来计算,不会到服务端查询
* @return void
* @note
* <pre>
* 由于网络上/下行的原因,返回的时间会存在一定误差,
* 当 calc_local == false 时,如果跟上次调用该方法的时间间隔小于1000ms,SDK会采用 calc_local == true
* 时的方案以减少服务端的压力,并会在回调中指明返回的时间是由本地计算的。 如果返回 code != 200,同样会返回一个本地计算结果
* </pre>
*/
getServerCurrentTime(cb: GetCurrentServerTimeCallback | null, calcLocal: boolean): Promise<[number, boolean, number]>;
/** 获取当前登录的用户账号(accid)
* @return string 当前登录的用户账号(accid)
* @note 没有登录时将返回空字符串 */
getCurrentUserAccount(): string;
}