初始化
更新时间: 2024/03/11 17:21:36
本文提供在 Electron 环境下,NIM SDK 初始化的详细说明。
在使用云信 IM 的各项功能之前,必须先对 NIM SDK 进行初始化。一般情况下,在应用的生命周期内,仅需进行一次初始化。
初始化时,可配置第三方离线推送服务、会话已读多端同步、群消息已读和融合存储等重要功能。
前提条件
初始化前,请确保:
- 已集成 SDK。
- 已在云信控制台创建应用,获取 App Key 和 App Secret。
- 已注册云信 IM 账号,获取 accid 和 token。
实现方法
-
在 js 文件中添加以下
import
代码,将 NIM 模块导入到您的项目。import * as node_nim from 'node-nim'
-
调用
NIMClient#init
进行 NIM SDK 的初始化。参数说明 类型 必须 说明 appKey String 是 当前应用的 App Key,一个 App Key 对应一个账号体系 appDataDir String 是 用户数据所在目录。
推荐用户目录放置在系统目录 AppData\Local,默认只需要传入目录名,SDK 会默认在系统目录下创建该级用户目录。如果要使用其他自定义路径,需传入绝对路径路径,并确保该目录有正确的读写权限appInstallDir String 否 SDK 动态库所在的目录全路径(如果传入为空,则按照默认规则搜索该动态库) config SDKConfig 否 初始化参数 SDKConfig 的部分重要配置参数
参数 类型 说明 默认值 push_cer_name String 推送证书名称 无 push_token String 推送 Token 无 database_encrypt_key String 数据库秘钥,建议填写,目前只支持最多 32 个字符的加密密钥 无 preload_attach Boolean 是否需要预下载附件(图片和语音)。如果有对带宽流量有较高要求的请关闭该选项,改为上层开发者按需下载附件文件。 true
preload_image_quality Number 预下载图片质量,范围:0-100 无 preload_image_resize String 预下载图片,基于长宽做内缩略,比如宽 100 高 50,则赋值为 100x50,中间为字母小写x 无 preload_image_name_template String IM 消息附件(图片、视频封面)缩略图命名规则,以 {filename} 为 token 进行替换 thumb_{filename}
sdk_log_level NIMSDKLogLevel SDK 日志级别,详见 NIMSDKLogLevel
kNIMSDKLogLevelPro
login_max_retry_times Number 登录重试最大次数。建议设置大于 3 次。 3
use_https Boolean 是否启用 HTTPS 协议 true
animated_image_thumbnail_enabled Boolean 是否开启动图缩略图 false
client_antispam Boolean 是否开启客户端反垃圾 false
need_update_lbs_befor_relogin Boolean 重新登录前是否需要更新 lbs 地址 false
custom_client_type Number 自定义客户端类型 0
enable_user_datafile_backup Boolean 是否开启用户数据备份(本地)功能 true
enable_user_datafile_restore Boolean 是否开启用户数据恢复(本地)功能 true
enable_user_datafile_defrestoreproc Boolean 当 enable_user_datafile_restore == true
时生效,是否使用缺省的用户数据恢复(本地)方案false
user_datafile_localbackup_folder String 用户数据文件备份(本地)目录,需保证有读写权限 在数据文件所在目录创建一个 db_file.back 目录 ip_protocol_version Number IP 地址类型,0:ipv4;1:ipv6;2:auto。经 SDK 测试后,自行选择,会有少许性能损耗 0
server_conf_file_path String 服务器配置文件路径 无 use_private_server Boolean 是否使用私有化服务器 false
lbs_address String lbs 地址,如果选择使用私有服务器,则必填 无 nos_lbs_address String nos lbs 地址,如果选择使用私有服务器,则必填 无 default_link_address String 默认 link 服务器地址,如果选择使用私有服务器,则必填 无 default_link_address_ipv6 String 如果选择使用私有服务器, ip_protocol_version_ == 1
(使用 ipv6)时则必填link ipv6 服务器地址 custom_enable_fcs Boolean 是否开启 AWS S3 存储 true
示例代码:
const result = node_nim.nim.client.init('appkey', 'path', '', { database_encrypt_key_: 'abcdefghijklmnopqrstuvwxyz012345' }) if (result) { node_nim.nim.initEventHandlers() // init event handlers node_nim.nim.client.on('receiveMsg', (result) => { console.log('receiveMsg', result) }) node_nim.nim.talk.on('receiveMsg', (result) => { console.log('receiveMsg', result) }) node_nim.nim.talk.on('sendMsg', (message: node_nim.IMMessage) => { console.log('sendMsg: ', message) }) // add more event handlers here // ... } return result
在初始化时可调用
NIMClient#initEventHandlers
和NIMClient#on
方法注册全局回调,监听相关事件。
后续步骤
完成初始化后,可登录 IM。
此文档是否对你有帮助?