Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface NIMInitializeOptions

NIM 的构造函数初始化参数

eg. new NIM({ ...NIMInitializeOptions })

Hierarchy

  • NIMInitializeOptions

Index

Properties

abtestUrl?: string

AB测试服务器下发地址。一般用户无需关注

account: string

IM 账号

appkey: string
authType?: number

登录 IM 的鉴权方式(默认为 0):

  • 0:通过传入静态 token 进行鉴权。静态 token 恒定不变,且默认永久有效,除非主动调用云信服务端 API刷新token
  • 1:通过传入动态 token 进行鉴权。动态 token 可设置有效期,因此具备时效性。采用该鉴权方式可有效提升token 破解难度,降低密码泄露风险。动态鉴权生成方式请参考: 登录鉴权
  • 2:过云信的第三方回调功能进行鉴权。云信服务端不做 IM 登录鉴权,鉴权工作需由指定的第三方服务器(可以是应用服务器)进行

采用动态 token 鉴权时,需要在重连时,重新设置 token,否则重连时会鉴权失败

nim.on('willReconnect', () => {
nim.setOptions({
token: 'new token'
})
})
customClientType?: number

自定义客户端类型,请设置大于 0 的整数。可实现自定义多端登录策略,具体策略可在云信管理后台配置。详情请查看文档: 自定义多端登录

注意

默认端类型只有 Web,PC,AOS,iOS。如果开发者需要更细致的类型区分,如微信小程序等环境,可通过该字段自行做映射。

debugLevel?: string

日志级别,默认为 off,即不输出任何日志

  • off: 不输出任何日志
  • debug: 输出所有日志
  • log: 输出 log、warn、 error 级别的日志
  • warn: 输出 warn 和 error 级别的日志
  • error: 输出 error 级别的日志
deviceId?: string

手动传入一个设备ID。若不设置该参数,默认设备 ID 是随机生成的。

设备ID主要用于推送服务。若要使用推送服务,应该设置 isFixedDeviceId = true。设置后,同一个设备会一直使用一个随机生成的设备ID。

然而,若客户端环境无法使用 localStorage,则即使设置了 isFixedDeviceId = true,应用也会每次生成一个新的设备ID。在这种情况下,为了固定设备ID,可以使用该变量,手动传入一个不变的设备 ID。这个设备ID可以通过安卓,或者iOS的库,或者uniapp的相关工具和设备硬件信息绑定。

isAbtestEnable?: boolean

Abtest 是否开启,默认 true 开启

注: 打开这个开关,在 sdk 内部会试探某些新功能的开启,建议开发者不要轻易设置它。

isFixedDeviceId?: boolean

是否 deviceId 需要固定下来。默认 false。

true:sdk 随机对设备生成一个设备标识并存入 localstorage 缓存起来,也就是说一个浏览器来说所有 SDK 实例连接都被认为是共同的设备。

false:每一个 sdk 实例连接时,使用随机的字符串作为设备标识,相当于每个实例采用的不同的设备连接上来的。

影响范围

  • 这个参数会影响多端互踢的策略。有关于多端互踢策略的配置可以参见服务器文档。
  • 这个参数影响离线推送(uniapp)
lbsUrls?: string[]

lbs 地址,默认为云信公网提供的链接。SDK 连接时会向 lbs 地址请求得到 socket 连接地址。

注:为了防止 lbs 链接被网络运营商劫持,开发者可以传入自己代理的地址做备份,['公网地址', '代理地址']

linkUrl?: string

socket 备用地址,当 lbs 请求失败时,尝试直接连接 socket 备用地址。

注:优先级最高的是 lbs 地址下发的 socket 连接地址, 次为开发者在此填的 socket 备用地址(如果不填这个字段, SDK 会有内部默认的备用地址)

needReconnect?: boolean

是否需要自动重连,默认为 true

reconnectionAttempts?: number

自动重连尝试次数。默认为不限次数

socketConnectTimeout?: number

建立 websocket 长连接的超时时间。默认为 8000 ms

token: string

IM 登录 token。

注意,若 authType = 1,即鉴权方式为动态 token,则需要在重连时,重新设置 token,防止 token 过期导致鉴权失败

nim.on('willReconnect', () => {
nim.setOptions({
token: 'new token'
})
})
xhrConnectTimeout?: number

建立连接时的 xhr 请求的超时时间。默认为 8000 ms。

xhr 请求是 websocket 连接建立前的步骤。它主要用于和服务器协商连接ID