初始化

更新时间: 2024/03/11 17:21:36

本文提供在 Electron 环境下,NIM SDK 初始化的详细说明。

在使用云信 IM 的各项功能之前,必须先对 NIM SDK 进行初始化。一般情况下,在应用的生命周期内,仅需进行一次初始化。

初始化时,可配置第三方离线推送服务、会话已读多端同步、群消息已读和融合存储等重要功能。

前提条件

初始化前,请确保:

实现方法

  1. 在 js 文件中添加以下 import 代码,将 NIM 模块导入到您的项目。

    import * as node_nim from 'node-nim'
    
  2. 调用 NIMClient#init 进行 NIM SDK 的初始化。

    参数说明类型必须说明
    appKey String当前应用的 App Key,一个 App Key 对应一个账号体系
    appDataDir String用户数据所在目录。
    推荐用户目录放置在系统目录 AppData\Local,默认只需要传入目录名,SDK 会默认在系统目录下创建该级用户目录。如果要使用其他自定义路径,需传入绝对路径路径,并确保该目录有正确的读写权限
    appInstallDir StringSDK 动态库所在的目录全路径(如果传入为空,则按照默认规则搜索该动态库)
    configSDKConfig初始化参数
    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#initEventHandlersNIMClient#on 方法注册全局回调,监听相关事件。

后续步骤

完成初始化后,可登录 IM

此文档是否对你有帮助?
有帮助
去反馈
  • 前提条件
  • 实现方法
  • 后续步骤