SmartAudio/package/libs/libyunxin/lib/include/api/nim_client.h

211 lines
13 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/** @file nim_client.h
* @brief SDK接入 接口头文件主要包括SDK初始化/清理、客户端登录/退出/重连/掉线/被踢等流程
* NIM SDK所有接口命名说明: nim_***(模块)_***(功能)如nim_client_init
* NIM SDK所有接口参数说明: 所有与字符串相关的参数(char *)全部为UTF-8编码。
* @copyright (c) 2015-2017, NetEase Inc. All rights reserved
* @author Harrison
* @date 2015/2/1
*/
#ifndef NIM_SDK_DLL_API_NIM_CLIENT_H_
#define NIM_SDK_DLL_API_NIM_CLIENT_H_
#include "nim_sdk_dll.h"
#include "../export_headers/nim_client_def.h"
#include "../util/stdbool.h"
#ifdef __cplusplus
extern"C"
{
#endif
/** @fn bool nim_client_init(const char *app_data_dir, const char *app_install_dir, const char *json_extension)
* NIM SDK初始化传入的JSON参数定义见nim_client_def.h
* @param[in] app_data_dir 使用默认路径时只需传入单个目录名(不以反斜杠结尾),使用自定义路径时需传入完整路径(以反斜杠结尾,并确保有正确的读写权限!)
* @param[in] app_install_dir 目前不需要传入SDK可以自动获取
* @param[in] json_extension json扩展参数。目前可以用于支持一些全局配置必填如APP_KEY、数据库的加密密钥等和私有服务器的设置选填
* @return bool 返回值true: 成功, false: 失败
*/
NIM_SDK_DLL_API bool nim_client_init(const char *app_data_dir, const char *app_install_dir, const char *json_extension);
/** @fn void nim_client_cleanup(const char *json_extension)
* NIM SDK清理传入的JSON参数定义见nim_client_def.h
* @param[in] json_extension json扩展参数备用目前不需要
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_client_cleanup(const char *json_extension);
/** @fn void nim_client_update_apns_token(const char *device_token)
* (PC SDK该接口无效)更新Device TokeniOS推送使用
* @param[in] device_token device token
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_client_update_apns_token(const char *device_token);
/** @fn void nim_client_login(const char *app_key, const char *account, const char *token, const char *json_extension, nim_json_transport_cb_func cb, const void *user_data)
* NIM客户端登录传入的JSON参数定义见nim_client_def.h
* @param[in] app_key APP key
* @param[in] account APP account
* @param[in] token 令牌 (在后台绑定的登录token)
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 登录流程的回调函数, nim_json_transport_cb_func回调函数定义见nim_global_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 302:账号或密码错误
* 403:禁止操作
* 408:请求超时
* 414:参数错误
* 415:网络连接出现错误
* 416:频率超限
* 422:账号被禁用
*/
NIM_SDK_DLL_API void nim_client_login(const char *app_key, const char *account, const char *token, const char *json_extension, nim_json_transport_cb_func cb, const void *user_data);
/** @fn int nim_client_get_login_state(const char *json_extension)
* 获取NIM客户端登录状态
* @param[in] json_extension json扩展参数备用目前不需要
* @return int 登录状态
*/
NIM_SDK_DLL_API int nim_client_get_login_state(const char *json_extension);
/** @fn void nim_client_relogin(const char *json_extension)
* NIM客户端手动重连注意 APP需要统一处理自动重连/手动重连的回调,因为如果处于某次自动重连的过程中调用手动重连接口,不起作用!)
* @param[in] json_extension json扩展参数备用目前不需要
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_client_relogin(const char *json_extension);
/** @fn void nim_client_logout(enum NIMLogoutType logout_type, const char *json_extension, nim_json_transport_cb_func cb, const void *user_data)
* NIM客户端注销/退出传入的JSON参数定义见nim_client_def.h
* @param[in] logout_type Logout操作类型其定义见nim_client_def.h
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 注销/退出的回调函数, nim_json_transport_cb_func回调函数定义见nim_global_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 500:未知错误
*/
NIM_SDK_DLL_API void nim_client_logout(enum NIMLogoutType logout_type, const char *json_extension, nim_json_transport_cb_func cb, const void *user_data);
/** @fn void nim_client_kick_other_client(const char *json_extension)
* 将本帐号的其他端踢下线
* @param[in] json_extension 设备标识其定义见nim_client_def.h
* @return void 无返回值 通过注册nim_client_reg_kickout_other_client_cb回调得到结果
*/
NIM_SDK_DLL_API void nim_client_kick_other_client(const char *json_extension);
/** @fn void nim_client_reg_auto_relogin_cb(const char *json_extension, nim_json_transport_cb_func cb, const void *user_data)
* (全局回调)注册NIM客户端自动重连回调。重连失败时如果不是网络错误引起的网络相关的错误号为kNIMResTimeoutError和kNIMResConnectionError而是服务器返回了非kNIMResSuccess的错误号
* 则说明重连的机制已经失效需要APP层调用nim_client_logout执行注销操作并退回到登录界面后进行重新登录。
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 自动重连的回调函数, nim_json_transport_cb_func回调函数定义见nim_global_def.h。
* 如果返回错误号kNIMResExist说明无法继续重连App层必须调用nim_client_logout退出到登录界面以便用户重新进行登录。
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
* 403:禁止操作
* 408:请求超时
* 414:参数错误
* 415:网络连接出现错误
* 416:频率超限
* 422:账号被禁用
*/
NIM_SDK_DLL_API void nim_client_reg_auto_relogin_cb(const char *json_extension, nim_json_transport_cb_func cb, const void *user_data);
/** @fn void nim_client_reg_kickout_cb(const char *json_extension, nim_json_transport_cb_func cb, const void *user_data)
* (全局回调)注册NIM客户端被踢回调
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 被踢的回调函数, nim_json_transport_cb_func回调函数定义见nim_global_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_client_reg_kickout_cb(const char *json_extension, nim_json_transport_cb_func cb, const void *user_data);
/** @fn nim_client_reg_disconnect_cb(const char *json_extension, nim_json_transport_cb_func cb, const void *user_data)
* (全局回调)注册NIM客户端掉线回调
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 掉线的回调函数, nim_json_transport_cb_func回调函数定义见nim_global_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_client_reg_disconnect_cb(const char *json_extension, nim_json_transport_cb_func cb, const void *user_data);
/** @fn void nim_client_reg_multispot_login_notify_cb(const char *json_extension, nim_json_transport_cb_func cb, const void *user_data)
* (全局回调)注册NIM客户端多点登录通知回调
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 多点登录通知的回调函数, nim_json_transport_cb_func回调函数定义见nim_global_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_client_reg_multispot_login_notify_cb(const char *json_extension, nim_json_transport_cb_func cb, const void *user_data);
/** @fn void nim_client_reg_kickout_other_client_cb(const char *json_extension, nim_json_transport_cb_func cb, const void *user_data)
* (全局回调)注册NIM客户端将本帐号的其他端踢下线结果回调
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 操作结果的回调函数, nim_json_transport_cb_func回调函数定义见nim_global_def.h
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
* @note 错误码 200:成功
*/
NIM_SDK_DLL_API void nim_client_reg_kickout_other_client_cb(const char *json_extension, nim_json_transport_cb_func cb, const void *user_data);
/** @fn void nim_client_reg_sync_multiport_push_config_cb(const char *json_extension, nim_client_multiport_push_config_cb_func cb, const void *user_data);
* (全局回调)注册多端推送设置同步回调
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值
*/
NIM_SDK_DLL_API void nim_client_reg_sync_multiport_push_config_cb(const char *json_extension, nim_client_multiport_push_config_cb_func cb, const void *user_data);
/** @fn nim_client_set_multiport_push_config(const char *switch_content, const char *json_extension, nim_client_multiport_push_config_cb_func cb, const void *user_data);
* 设置多端推送控制开关
* @param[in] switch_content 开关内容
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 操作结果的回调函数
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值 通过注册nim_client_reg_kickout_other_client_cb回调得到结果
* @note 错误码 200:成功
*/
NIM_SDK_DLL_API void nim_client_set_multiport_push_config(const char *switch_content, const char *json_extension, nim_client_multiport_push_config_cb_func cb, const void *user_data);
/** @fn nim_client_get_multiport_push_config(const char *json_extension, nim_client_multiport_push_config_cb_func cb, const void *user_data);
* 获取多端推送控制开关
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 操作结果的回调函数
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值 通过注册nim_client_reg_kickout_other_client_cb回调得到结果
*/
NIM_SDK_DLL_API void nim_client_get_multiport_push_config(const char *json_extension, nim_client_multiport_push_config_cb_func cb, const void *user_data);
#if !NIMAPI_UNDER_WIN_DESKTOP_ONLY
/** @fn nim_client_set_dnd_config(const char* cfg_json, const char *json_extension, nim_client_dnd_cb_func cb, const void *user_data);
* (PC SDK该接口无效)ios 免打扰设置
* @param[in] cfg_json 免打扰设置
* @param[in] json_extension json扩展参数备用目前不需要
* @param[in] cb 操作结果的回调函数
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值 通过注册nim_client_reg_kickout_other_client_cb回调得到结果
*/
NIM_SDK_DLL_API void nim_client_set_dnd_config(const char* cfg_json, const char *json_extension, nim_client_dnd_cb_func cb, const void *user_data);
/** @fn nim_client_get_dnd_config(nim_client_dnd_cb_func cb, const void *user_data);
* (PC SDK该接口无效)获取ios 免打扰设置
* @param[in] cb 操作结果的回调函数
* @param[in] user_data APP的自定义用户数据SDK只负责传回给回调函数cb不做任何处理
* @return void 无返回值 通过注册nim_client_reg_kickout_other_client_cb回调得到结果
*/
NIM_SDK_DLL_API void nim_client_get_dnd_config(nim_client_dnd_cb_func cb, const void *user_data);
/** @fn const char * nim_tool_get_version()
* (PC SDK该接口无效)获取SDK 版本号
* @return const char * SDK 版本号
*/
NIM_SDK_DLL_API const char* nim_client_get_version();
#endif
#ifdef __cplusplus
};
#endif //__cplusplus
#endif //NIM_SDK_DLL_API_NIM_CLIENT_H_