NIM PC Cross Platform SDK
nim_client_helper.h
Go to the documentation of this file.
1
6#ifndef _NIM_SDK_CPP_CLIENT_HELPER_H_
7#define _NIM_SDK_CPP_CLIENT_HELPER_H_
8
9#include <functional>
10#include <list>
11#include <map>
12#include <string>
14#include "nim_define_include.h"
16#include "public_defines.h"
17
22namespace nim {
23
24class Client;
26struct NIM_SDK_CPPWRAPPER_DLL_API SDKConfig {
27 // global_config
29 std::string push_cer_name_;
31 std::string push_token_;
69 std::list<NIMMessageType> session_ignore_msg_types_;
70
71 /***********消息“已接收回执”发送配置 begin************/
78 /***********消息“已接收回执”发送配置 end************/
79
80 /***********用户数据本地备份与恢复 begin************/
89 /***********用户数据本地备份与恢复 end************/
90
91 /***********IP地址族相关设置 begin************/
94 /***********地址族相关设置 end************/
95
106 // private_server_setting 私有服务器配置(设置方法有两种,一个是配置以下信息,一个是通过配置server_conf_file_path_地址,信息从文件中读取)
110 std::string lbs_address_;
112 std::list<std::string> lbs_backup_address_;
114 std::string nos_lbs_address_;
127
134
140 std::vector<std::string> nos_accelerate_host_list_;
143
144 /***********IP地址族相关设置 begin************/
146 std::string probe_ipv4_url_;
148 std::string probe_ipv6_url_;
149 /***********地址族相关设置 end************/
150
152 std::map<int /*key */, int /*value */> sync_data_type_list_;
154 std::list<std::string> http_dns_server_interface_;
164 std::string sdk_human_version;
165
166 /***********融合存储相关************/
167 std::string mock_refer_;
168 std::string mock_ua_;
173
175 SDKConfig();
176
177public:
178 void SetCustomClientType(int type);
179 int GetCustomClientType() const;
180
181private:
182 friend class Client;
184 std::pair<bool, int> custom_client_type_;
185};
186
188struct NIM_SDK_CPPWRAPPER_DLL_API OtherClientPres {
190 std::string app_account_;
194 std::string client_os_;
196 std::string mac_address_;
198 std::string device_id_;
200 int64_t login_time_;
202 std::string custom_data_;
207 : login_time_(0)
208 , custom_client_type_(0) {}
209};
210
212struct NIM_SDK_CPPWRAPPER_DLL_API LoginRes {
220 std::list<OtherClientPres> other_clients_;
225 : relogin_(false)
226 , retrying_(true) {}
227};
228
230struct NIM_SDK_CPPWRAPPER_DLL_API KickoutRes {
239};
240
242struct NIM_SDK_CPPWRAPPER_DLL_API MultiSpotLoginRes {
246 std::list<OtherClientPres> other_clients_;
247};
248
250struct NIM_SDK_CPPWRAPPER_DLL_API KickOtherRes {
254 std::list<std::string> device_ids_;
255};
256
263bool NIM_SDK_CPPWRAPPER_DLL_API ParseOtherClientsPres(const nim_cpp_wrapper_util::Json::Value array_objs, std::list<OtherClientPres>& outs);
264
266struct NIM_SDK_CPPWRAPPER_DLL_API LoginParams {
268 std::string custom_data_;
272 std::string login_ex_;
274 : auth_type_(kNIMAuthTypeDefault) {}
275};
276
277} // namespace nim
278
279#endif //_NIM_SDK_CPP_CLIENT_HELPER_H_
全局管理功能;主要包括SDK初始化/清理、客户端登录/退出等功能
Definition: nim_cpp_client.h:28
Represents a JSON value.
Definition: value.h:196
namespace nim
bool ParseOtherClientsPres(const nim_cpp_wrapper_util::Json::Value array_objs, std::list< OtherClientPres > &outs)
Definition: nim_client_helper.cpp:63
NIMSDKLogLevel
Definition: nim_chatroom_def.h:507
NIMResCode
Definition: nim_chatroom_res_code_def.h:15
NIMMultiSpotNotifyType
Definition: nim_client_def.h:155
NIMSDKType
Definition: nim_client_def.h:131
NIMLoginStep
Definition: nim_client_def.h:143
NIMClientType
Definition: nim_client_def.h:113
NIMKickReason
Definition: nim_client_def.h:103
NIMAuthType
Definition: nim_client_def.h:81
@ kNIMAuthTypeDefault
默认登录方式
Definition: nim_client_def.h:83
NIM 公共数据类型定义总的包含文件
JSON辅助方法
定义导出宏
NIM SDK 及 NIM ChatRoom SDK 公用头文件
踢人结果回调信息
Definition: nim_client_helper.h:250
std::list< std::string > device_ids_
设备id,uuid
Definition: nim_client_helper.h:254
NIMResCode res_code_
返回的错误码NIMResCode
Definition: nim_client_helper.h:252
被踢结果回调信息
Definition: nim_client_helper.h:230
NIMKickReason kick_reason_
返回的被踢原因NIMKickReason
Definition: nim_client_helper.h:234
int32_t custom_client_type_
自定义客户端类型,若没有,服务器会填0
Definition: nim_client_helper.h:238
std::string kickout_description_
string 返回的被踢描述
Definition: nim_client_helper.h:236
NIMClientType client_type_
int, 客户端类型NIMClientType
Definition: nim_client_helper.h:232
Definition: nim_client_helper.h:266
NIMAuthType auth_type_
鉴权方式,0表示默认校验方式,1表示基于appSecret计算的token方式,2表示基于第三方回调的token方式,默认0
Definition: nim_client_helper.h:270
std::string custom_data_
自定义登录数据,会同步给其他端
Definition: nim_client_helper.h:268
std::string login_ex_
第三方回调方式鉴权要传递给服务器的拓展数据
Definition: nim_client_helper.h:272
登录结果回调信息
Definition: nim_client_helper.h:212
NIMResCode res_code_
返回的错误码NIMResCode
Definition: nim_client_helper.h:214
NIMLoginStep login_step_
登录步骤NIMLoginStep
Definition: nim_client_helper.h:218
bool retrying_
SDK是否在重试,如果为false,开发者需要检查登录步骤和错误码,明确问题后调用手动重连接口进行登录操作
Definition: nim_client_helper.h:222
bool relogin_
是否为重连过程
Definition: nim_client_helper.h:216
LoginRes()
Definition: nim_client_helper.h:224
std::list< OtherClientPres > other_clients_
其他端的在线状态列表,登录成功才会返回这部分内容
Definition: nim_client_helper.h:220
多端登录回调信息
Definition: nim_client_helper.h:242
NIMMultiSpotNotifyType notify_type_
NIMMultiSpotNotifyType 多点登录通知类型
Definition: nim_client_helper.h:244
std::list< OtherClientPres > other_clients_
其他端的在线状态列表
Definition: nim_client_helper.h:246
多端登陆客户端信息
Definition: nim_client_helper.h:188
int custom_client_type_
int, 自定义客户端类型字段,大于0
Definition: nim_client_helper.h:204
std::string app_account_
第三方账号
Definition: nim_client_helper.h:190
std::string custom_data_
自定义字段
Definition: nim_client_helper.h:202
std::string mac_address_
登录设备的mac地址
Definition: nim_client_helper.h:196
std::string client_os_
登录系统类型,比如ios 6.0.1
Definition: nim_client_helper.h:194
OtherClientPres()
Definition: nim_client_helper.h:206
std::string device_id_
设备id,uuid
Definition: nim_client_helper.h:198
int64_t login_time_
本次登陆时间, 精度到ms
Definition: nim_client_helper.h:200
NIMClientType client_type_
客户端类型, 见NIMClientType
Definition: nim_client_helper.h:192
SDK设置项
Definition: nim_client_helper.h:26
std::string nos_lbs_address_
string nos lbs地址,如果选择使用私有服务器,则必填
Definition: nim_client_helper.h:114
int fcs_auth_type_
融合云存储认证方式 1=refer鉴权,2=基于时间的token鉴权,3=基于url的token鉴权,4=custom鉴权
Definition: nim_client_helper.h:170
std::string rsa_public_key_module_
string RSA public key,如果选择使用私有服务器,则必填 【6.9.0版本后已废弃】
Definition: nim_client_helper.h:124
std::map< int, int > sync_data_type_list_
map 数据同步类型 key(28:置顶会话) value(0:不同步,1:自动同步)
Definition: nim_client_helper.h:152
int login_max_retry_times_
int 登录重试最大次数,如需设置建议设置大于3次,默认填0,SDK默认设置次数
Definition: nim_client_helper.h:47
std::string nos_accelerate_address_
string nos 加速地址拼接模板,用于获得加速后的下载地址
Definition: nim_client_helper.h:142
uint32_t caching_markread_count_
uint32 caching_markread_ == true 时有效 缓存的最大消息条数 缺省 10
Definition: nim_client_helper.h:77
std::string sdk_human_version
sdk可读版本号
Definition: nim_client_helper.h:164
NIMSDKType sdk_type
客户端sdk类型
Definition: nim_client_helper.h:162
std::string default_link_address_ipv6_
string 默认link ipv6服务器地址,如果选择使用私有服务器,ip_protocol_version_ == 1(使用ipv6)则必填
Definition: nim_client_helper.h:118
std::string database_encrypt_key_
string 数据库秘钥,必填,目前只支持最多32个字符的加密密钥!建议使用32个字符
Definition: nim_client_helper.h:33
std::string default_link_address_
string 默认link服务器地址,如果选择使用私有服务器,ip_protocol_version_ != 1(ipv4 or auto)则必填
Definition: nim_client_helper.h:116
bool dedicated_cluste_flag_
bool 是否为专属集群 {true,false} def:false
Definition: nim_client_helper.h:97
bool vchat_miss_unread_count_
bool 语音消息未接通消息是否计入未读数,默认为false
Definition: nim_client_helper.h:55
bool upload_sdk_events_after_login_
bool,在调用 Login 接口后无论成功是否上报历史错误日志到服务器(目前支持 408、415、500)默认为false
Definition: nim_client_helper.h:59
bool client_antispam_
bool 客户端反垃圾,默认为false,如需开启请提前咨询技术支持或销售
Definition: nim_client_helper.h:63
bool team_msg_ack_
bool 群消息已读功能开关, 默认为false,如需开启请提前咨询技术支持或销售
Definition: nim_client_helper.h:65
std::list< NIMMessageType > session_ignore_msg_types_
list<NIMMessageType> 更新会话时忽略某种消息类型,默认为空
Definition: nim_client_helper.h:69
std::string push_token_
string 选填,推送的设备token (iOS/Mac有效)
Definition: nim_client_helper.h:31
std::string nego_key_neca_key_partb_
string 非对称加密算法key2 RSA:EXP,SM2: SM2Y 自定义时则必填
Definition: nim_client_helper.h:131
bool custom_enable_fcs_
是否开启融合云存储
Definition: nim_client_helper.h:172
bool enable_user_datafile_backup_
bool 是否开启用户数据备份(本地)功能 缺省true
Definition: nim_client_helper.h:82
uint32_t caching_markread_time_
uint32 caching_markread_ == true 时有效 缓存时间 单位ms 缺省 1000
Definition: nim_client_helper.h:75
int ip_protocol_version_
int IP地址族设置 0:ipv4 1:ipv6 2:auto,经SDK测试后,自行选择,会有少许性能损耗。缺省 0(ipv4)
Definition: nim_client_helper.h:93
int custom_timeout_
int 自定义通讯超时时间,暂时不开放设置
Definition: nim_client_helper.h:49
NIMSDKLogLevel sdk_log_level_
NIMSDKLogLevel 定义见NIMSDKLogLevel,选填,SDK默认的内置级别为kNIMSDKLogLevelPro.
Definition: nim_client_helper.h:43
std::string user_datafile_localbackup_folder_
string 用户数据文件备份(本地)目录,缺省在数据文件所在目录创建一个db_file.back目录
Definition: nim_client_helper.h:88
std::string default_nos_upload_host_
string 默认nos 上传服务器主机地址,仅 kNIMUseHttps设置为true 时有效,用作 https 上传时的域名校验及 http header host 字段填充
Definition: nim_client_helper.h:122
bool disable_app_nap_
string 是否禁用 macOS 下的 App Nap 功能,默认为 true
Definition: nim_client_helper.h:158
bool priority_use_cdn_host_
bool 是否优先使用cdn域名
Definition: nim_client_helper.h:156
bool caching_markread_
bool 是否开启缓存式“已接收回执”发送,程序可能收到大量消息以至触发频控时可以考虑开启此开关 缺省 false 关闭
Definition: nim_client_helper.h:73
bool enable_user_datafile_defrestoreproc_
bool 是否使用缺省的用户数据恢复(本地)方案 缺省false enable_user_datafile_restore_ == true 生效
Definition: nim_client_helper.h:86
std::string nos_accelerate_host_
string 需要被加速主机名【8.1.0版本以及后不建议使用,推荐nos_accelerate_host_list_】
Definition: nim_client_helper.h:138
std::string preload_image_name_template_
string 预下载图片命名规则,以{filename}为token进行替换
Definition: nim_client_helper.h:41
bool animated_image_thumbnail_enabled_
bool 开启对动图缩略图的支持,默认为false,开启后获取的缩略图为原格式,关闭后获取的缩略图为第一帧静态图
Definition: nim_client_helper.h:61
std::string probe_ipv6_url_
string 探测ipv6地址类型使用的url,ip_protocol_version_ == 2(auto) 时生效
Definition: nim_client_helper.h:148
std::list< std::string > lbs_backup_address_
string list lbs备用地址,没有可不填
Definition: nim_client_helper.h:112
int nego_key_neca_key_version_
int 非对称加密算法的 key version 自定义时则必填
Definition: nim_client_helper.h:133
bool preload_attach_
是否需要预下载附件(图片和语音),选填,默认为true,如果有对带宽流量有较高要求的请关闭该选项,改为上层开发者按需下载附件文件
Definition: nim_client_helper.h:35
std::string push_cer_name_
string 选填,云信后台配置的推送证书名称 ( iOS/Mac有效)
Definition: nim_client_helper.h:29
std::vector< std::string > nos_accelerate_host_list_
string array,需要被加速主机名列表
Definition: nim_client_helper.h:140
bool use_private_server_
bool 是否使用私有服务器,如果使用私有服务器,则必须设置为true
Definition: nim_client_helper.h:108
bool team_notification_unread_count_
bool 群通知是否计入未读数,默认为false
Definition: nim_client_helper.h:53
int rsa_version_
int RSA version,如果选择使用私有服务器,则必填 【6.9.0版本后已废弃】
Definition: nim_client_helper.h:126
int preload_image_quality_
int 预下载图片质量,选填,范围0-100
Definition: nim_client_helper.h:37
bool need_update_lbs_befor_relogin_
bool 在进行重新登录前是否先刷新一下lbs,对于切换网络的场景适用
Definition: nim_client_helper.h:67
std::string nego_key_neca_key_parta_
string "交换密钥"协议加密算法密钥 part A 自定义时则必填 BigNumHex string 不含0x RSA:module,SM2:X
Definition: nim_client_helper.h:129
bool sync_session_ack_
bool 设置是否已读未读状态多端同步,默认true
Definition: nim_client_helper.h:45
std::string probe_ipv4_url_
string 探测ipv4地址类型使用的url,ip_protocol_version_ == 2(auto) 时生效
Definition: nim_client_helper.h:146
std::string preload_image_resize_
string 预下载图片基于长宽做内缩略,选填,比如宽100高50,则赋值为100x50,中间为字母小写x
Definition: nim_client_helper.h:39
bool enable_user_datafile_restore_
bool 是否开启用户数据恢复(本地)功能 缺省false
Definition: nim_client_helper.h:84
bool reset_unread_count_when_recall_
bool 撤回消息是否重新计算未读消息计数,默认为false
Definition: nim_client_helper.h:57
bool cache_session_data_when_delete_
bool 删除会话时是否在数据库缓存会话原数据,默认为 false
Definition: nim_client_helper.h:160
std::string nos_download_address_
string nos 下载地址拼接模板,用于拼接最终得到的下载地址
Definition: nim_client_helper.h:136
int comm_neca_
int 通信加密算法 {1(RC4),2(AES128),4(SM4)} def:1(RC4) 对称加密
Definition: nim_client_helper.h:103
std::string default_nos_upload_address_
string 默认nos 上传服务器地址,如果选择使用私有服务器,则必填
Definition: nim_client_helper.h:120
int nego_key_neca_
int "交换密钥"协议加密算法 {1(RSA),2(SM2)}, def:1(RSA) 非对称加密
Definition: nim_client_helper.h:101
std::list< std::string > http_dns_server_interface_
string list httpdns服务请求地址,如果没有特定地址可以不填
Definition: nim_client_helper.h:154
bool use_https_
bool 是否启用HTTPS协议,默认为true
Definition: nim_client_helper.h:51
int hand_shake_type_
int 登录时使用的握手协议类型 0:支持配置多种对称与非对称加密算法,1:只支持RAS + RC4,缺省 1
Definition: nim_client_helper.h:99
std::string lbs_address_
string lbs地址,如果选择使用私有服务器,则必填
Definition: nim_client_helper.h:110
std::string server_conf_file_path_
string 私有云服务器相关地址配置文件本地绝对路径,如果不填默认执行文件目录下的server_conf.txt
Definition: nim_client_helper.h:105