NIM PC Cross Platform SDK
nim::Client Class Reference

全局管理功能;主要包括SDK初始化/清理、客户端登录/退出等功能 More...

#include <nim_cpp_client.h>

Public Types

typedef std::function< void(const std::function< void()> &)> SDKClosure
 默认回调模板
 
typedef std::function< void(const LoginRes &)> LoginCallback
 登录回调模板
 
typedef std::function< void(std::string *)> ReloginRequestTokenCallback
 自动重连时请求新的鉴权回调
 
typedef std::function< void(NIMResCode)> LogoutCallback
 登出回调模板
 
typedef std::function< void(const KickoutRes &)> KickoutCallback
 被踢通知回调模板
 
typedef std::function< void(void)> DisconnectCallback
 断网通知回调模板
 
typedef std::function< void(const MultiSpotLoginRes &)> MultiSpotLoginCallback
 多端登录通知回调模板
 
typedef std::function< void(const KickOtherRes &)> KickOtherCallback
 将多端下线回调模板
 
typedef std::function< void(int, bool)> MultiportPushConfigCallback
 多端推送控制开关回调模板
 
typedef std::function< void(int, bool, uint64_t)> GetCurrentServerTimeCallback
 查询服务器当前时间回调模板
 

Static Public Member Functions

static bool Init (const std::string &app_key, const std::string &app_data_dir, const std::string &app_install_dir, const SDKConfig &config)
 
static void SetCallbackFunction (const SDKClosure &callback)
 
static const SDKConfigGetSDKConfig ()
 
static void Cleanup (const std::string &json_extension="")
 
static void Cleanup2 (const std::string &json_extension="")
 
static void LoginCustomDataToJson (const LoginParams &params, std::string &loginParams)
 
static void LoginCustomDataToJson (const std::string &custom_data, std::string &strValue)
 
static bool Login (const std::string &app_key, const std::string &account, const std::string &password, const LoginCallback &cb, const std::string &json_extension="")
 
static NIMLoginState GetLoginState (const std::string &json_extension="")
 
static void Relogin (const std::string &json_extension="")
 
static void Logout (NIMLogoutType logout_type, const LogoutCallback &cb, const std::string &json_extension="")
 
static bool KickOtherClient (const std::list< std::string > &client_ids)
 
static void RegReloginCb (const LoginCallback &cb, const std::string &json_extension="")
 
static void RegReloginRequestToeknCb (const ReloginRequestTokenCallback &cb, const std::string &json_extension="")
 
static void RegKickoutCb (const KickoutCallback &cb, const std::string &json_extension="")
 
static void RegDisconnectCb (const DisconnectCallback &cb, const std::string &json_extension="")
 
static void RegMultispotLoginCb (const MultiSpotLoginCallback &cb, const std::string &json_extension="")
 
static void RegKickOtherClientCb (const KickOtherCallback &cb, const std::string &json_extension="")
 
static void RegSyncMultiportPushConfigCb (const MultiportPushConfigCallback &cb, const std::string &json_extension="")
 
static void SetMultiportPushConfigAsync (bool switch_on, const MultiportPushConfigCallback &cb, const std::string &json_extension="")
 
static void GetMultiportPushConfigAsync (const MultiportPushConfigCallback &cb, const std::string &json_extension="")
 
static std::string GetSDKVersion ()
 
static std::string GetCurrentUserAccount ()
 
static void GetServerCurrentTime (const Client::GetCurrentServerTimeCallback &cb, bool calc_local=false)
 
static void UnregClientCb ()
 

Detailed Description

全局管理功能;主要包括SDK初始化/清理、客户端登录/退出等功能

Member Function Documentation

◆ Cleanup()

void nim::Client::Cleanup ( const std::string &  json_extension = "")
static

NIM SDK清理

Parameters
[in]json_extensionjson扩展参数(备用,目前不需要)
Returns
void 无返回值

◆ Cleanup2()

void nim::Client::Cleanup2 ( const std::string &  json_extension = "")
static

NIM SDK清理如果未注销,SDK会在清理前进行注销操作

Parameters
[in]json_extensionjson扩展参数(备用,目前不需要)
Returns
void 无返回值

◆ GetCurrentUserAccount()

void nim::Client::GetCurrentUserAccount ( )
static

获取当前登录的用户账号 (accid)

Returns
std::string 当前登录的用户账号(accid)
Note
没有登录时将返回空字符串

◆ GetLoginState()

NIMLoginState nim::Client::GetLoginState ( const std::string &  json_extension = "")
static

获取客户端登录状态

Parameters
[in]json_extensionjson扩展参数(备用,目前不需要)
Returns
NIMLoginState 登录状态

◆ GetMultiportPushConfigAsync()

void nim::Client::GetMultiportPushConfigAsync ( const MultiportPushConfigCallback cb,
const std::string &  json_extension = "" 
)
static

获得多端推送设置

Parameters
[in]cb回调函数
[in]json_extensionjson扩展参数(备用,目前不需要)
Returns
void

◆ GetSDKConfig()

const SDKConfig & nim::Client::GetSDKConfig ( )
static

NIM SDK初始化

Returns
SDKConfig 返回值SDKConfig的引用 const类型,不可试图修改

◆ GetSDKVersion()

std::string nim::Client::GetSDKVersion ( )
static

获取SDK版本号

Returns
std::string 版本号

◆ GetServerCurrentTime()

void nim::Client::GetServerCurrentTime ( const Client::GetCurrentServerTimeCallback cb,
bool  calc_local = false 
)
static

获取当前服务器时间

Parameters
[in]cb操作结果的回调函数
[in]calc_local是否在本地计算,false:直接到服务端查询 ,true:根据上次查询到的服务端时间与本地系统启动时间来计算,不会到服务端查询
Returns
void
Note
由于网络上/下行的原因,返回的时间会存在一定误差, 当 calc_local == false 时,如果跟上次调用该方法的时间间隔小于1000ms,SDK会采用 calc_local == true 时的方案以减少服务端的压力,并会在回调中指明返回的时间是由本地计算的。 如果返回 code != 200,同样会返回一个本地计算结果

◆ Init()

bool nim::Client::Init ( const std::string &  app_key,
const std::string &  app_data_dir,
const std::string &  app_install_dir,
const SDKConfig config 
)
static

NIM SDK初始化

Parameters
[in]app_key应用注册的APP KEY
[in]app_data_dir推荐用户目录放置在系统目录{AppData\Local},默认只需要传入目录名,SDK会默认在系统目录下创建该级用户目录。如果要使用其他自定义路径,需传入绝对路径路径,并确保该目录有正确的读写权限。
[in]app_install_dirDeprecated
[in]config初始化参数
Returns
bool 返回值true: 成功, false: 失败

◆ KickOtherClient()

bool nim::Client::KickOtherClient ( const std::list< std::string > &  client_ids)
static

将本帐号的其他端踢下线

Parameters
[in]client_ids设备标识
Returns
bool 检查参数如果不符合要求则返回失败, 接口调用成功后的结果通过注册RegKickOtherClientCb回调得到

◆ Login()

bool nim::Client::Login ( const std::string &  app_key,
const std::string &  account,
const std::string &  password,
const LoginCallback cb,
const std::string &  json_extension = "" 
)
static

NIM客户端登录

Parameters
[in]app_key
[in]account帐号
[in]password密码
[in]cb登录流程的回调函数
[in]json_extensionjson扩展参数(v5.7.0 项目增加自定义参数字段)
Returns
bool 检查参数如果不符合要求则返回失败
Note
错误码 200:成功 302:账号或密码错误 403:禁止操作 408:请求超时 414:参数错误 415:网络连接出现错误 416:频率超限 422:账号被禁用

◆ LoginCustomDataToJson() [1/2]

void nim::Client::LoginCustomDataToJson ( const LoginParams params,
std::string &  loginParams 
)
static

将LoginParams 转换为json格式字符串

Parameters
[in]params登录参数 详见nim_client_def.h LoginParams 定义
[out]loginParamsjson 格式字符串
Returns
void 无返回值

◆ LoginCustomDataToJson() [2/2]

void nim::Client::LoginCustomDataToJson ( const std::string &  custom_data,
std::string &  strValue 
)
static

将login 字定义数据 转换到 LoginParams json格式字符串

Parameters
[in]custom_data字定义数据
[out]strValuejson 格式字符串
Returns
void 无返回值

◆ Logout()

void nim::Client::Logout ( NIMLogoutType  logout_type,
const LogoutCallback cb,
const std::string &  json_extension = "" 
)
static

NIM客户端注销/退出

Parameters
[in]logout_typeLogout操作类型,其定义见nim_client_def.h
[in]cb注销/退出的回调函数
[in]json_extensionjson扩展参数(备用,目前不需要)
Returns
void 无返回值
Note
错误码 200:成功 500:未知错误

◆ RegDisconnectCb()

void nim::Client::RegDisconnectCb ( const DisconnectCallback cb,
const std::string &  json_extension = "" 
)
static

(全局回调)注册NIM客户端掉线回调

Parameters
[in]cb掉线的回调函数
[in]json_extensionjson扩展参数(备用,目前不需要)
Returns
void 无返回值

◆ RegKickOtherClientCb()

void nim::Client::RegKickOtherClientCb ( const KickOtherCallback cb,
const std::string &  json_extension = "" 
)
static

(全局回调)注册NIM客户端将本帐号的其他端踢下线结果回调

Parameters
[in]cb踢下线结果回调函数
[in]json_extensionjson扩展参数(备用,目前不需要)
Returns
void 无返回值
Note
错误码 200:成功

◆ RegKickoutCb()

void nim::Client::RegKickoutCb ( const KickoutCallback cb,
const std::string &  json_extension = "" 
)
static

(全局回调)注册NIM客户端被踢回调

Parameters
[in]cb被踢的回调函数
[in]json_extensionjson扩展参数(备用,目前不需要)
Returns
void 无返回值

◆ RegMultispotLoginCb()

void nim::Client::RegMultispotLoginCb ( const MultiSpotLoginCallback cb,
const std::string &  json_extension = "" 
)
static

(全局回调)注册NIM客户端多点登录通知回调

Parameters
[in]cb多点登录通知的回调函数
[in]json_extensionjson扩展参数(备用,目前不需要)
Returns
void 无返回值

◆ RegReloginCb()

void nim::Client::RegReloginCb ( const LoginCallback cb,
const std::string &  json_extension = "" 
)
static

(全局回调)注册NIM客户端自动重连回调。重连失败时,如果不是网络错误引起的(网络相关的错误号为kNIMResTimeoutError和kNIMResConnectionError),而是服务器返回了非kNIMResSuccess的错误号, 则说明重连的机制已经失效,需要APP层调用nim_client_logout执行注销操作并退回到登录界面后进行重新登录。

Parameters
[in]cb自动重连的回调函数
[in]json_extensionjson扩展参数(备用,目前不需要)
Returns
void 无返回值
Note
错误码 200:成功 403:禁止操作 408:请求超时 414:参数错误 415:网络连接出现错误 416:频率超限 422:账号被禁用

◆ RegReloginRequestToeknCb()

void nim::Client::RegReloginRequestToeknCb ( const ReloginRequestTokenCallback cb,
const std::string &  json_extension = "" 
)
static

如果登录类型模式默认类型,则注册该回调用于在重登陆时获取新的登录鉴权 token

Parameters
[in]cb上层用于生产 token 的回调函数
[in]json_extensionjson扩展参数(备用,目前不需要)
Returns
void 无返回值
Note
错误码 无

◆ RegSyncMultiportPushConfigCb()

void nim::Client::RegSyncMultiportPushConfigCb ( const MultiportPushConfigCallback cb,
const std::string &  json_extension = "" 
)
static

(全局回调)注册多端推送开关同步回调

Parameters
[in]cb回调函数
[in]json_extensionjson扩展参数(备用,目前不需要)
Returns
void 无返回值

◆ Relogin()

void nim::Client::Relogin ( const std::string &  json_extension = "")
static

NIM客户端手动重连(注意 APP需要统一处理自动重连/手动重连的回调,因为如果处于某次自动重连的过程中调用手动重连接口,不起作用!)

Parameters
[in]json_extensionjson扩展参数(备用,目前不需要)
Returns
void 无返回值

◆ SetCallbackFunction()

void nim::Client::SetCallbackFunction ( const SDKClosure callback)
static

当以动态库使用SDK时 设置SDK回调方法,为了不阻塞SDK线程,在回调中应该把任务抛到应用层的线程中

Parameters
[in]callback回调方法
Returns
void 无返回值

◆ SetMultiportPushConfigAsync()

void nim::Client::SetMultiportPushConfigAsync ( bool  switch_on,
const MultiportPushConfigCallback cb,
const std::string &  json_extension = "" 
)
static

(全局回调)设置多端推送

Parameters
[in]switch_on开关
[in]cb回调函数
[in]json_extensionjson扩展参数(备用,目前不需要)
Returns
void
Note
错误码 200:成功

◆ UnregClientCb()

void nim::Client::UnregClientCb ( )
static

反注册Client提供的所有回调

Returns
void 无返回值

The documentation for this class was generated from the following files: