Options
All
  • Public
  • Public/Protected
  • All
Menu

Module NIMInterface

Index

Type Aliases

IMEventSyncFriendResult: { account?: string; friend?: FriendProfile; type: string }

Type declaration

  • Optional account?: string
  • Optional friend?: FriendProfile
  • type: string
KickOptions: { deviceIds: string[] }

Type declaration

  • deviceIds: string[]

    要踢掉的端的设备号数组

    端设备号能在 multiPortLogin 多端登陆事件里拿到

KickResult: { deviceIds: string[] }

Type declaration

  • deviceIds: string[]

    成功被踢掉的设备号数组

LoginResult: { aosPushInfo?: { hasTokenPreviously?: boolean; pushType?: number }; appkey?: string; connectionId: string; country?: string; customTag?: string; ip: string; lastLoginDeviceId?: string; port: string }

Type declaration

  • Optional aosPushInfo?: { hasTokenPreviously?: boolean; pushType?: number }

    AOS 推荐推送配置信息

    • Optional hasTokenPreviously?: boolean
    • Optional pushType?: number
  • Optional appkey?: string
  • connectionId: string

    连接id

  • Optional country?: string
  • Optional customTag?: string

    自定义登陆标签

  • ip: string
  • Optional lastLoginDeviceId?: string

    上一次登陆的设备 id

  • port: string

    端口

MultiPortLoginResult: { account: string; connectionId: string; deviceId: string; ip: string; mac: string; online: boolean; os: string; time: number; type: TClientType }

Type declaration

  • account: string
  • connectionId: string

    socket 连接 id

  • deviceId: string

    设备id

  • ip: string
  • mac: string
  • online: boolean

    是否在线

  • os: string

    系统版本

  • time: number
  • type: TClientType
NIMInitializeOptions: { account: string; appkey: string; authType?: number; customClientType?: number; debugLevel?: string; isFixedDeviceId?: boolean; lbsUrls?: string[]; linkUrl?: string; needReconnect?: boolean; reconnectionAttempts?: number; token: string }

NIM 的构造函数初始化参数

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

Type declaration

  • account: string
  • appkey: string
  • Optional authType?: number

    token 的认证模式,默认 0.

    0:token 是固定的

    1:token 是动态的,有过期时间。token过期后已登录状态的连接不受影响,但之后的登录需使用新 token。

    2:账号和 token 由开发者的服务校验,云信服务器收到登录请求后会转发至开发者服务器,并将其校验结果返回

  • Optional customClientType?: number

    自定义的客户端类型

  • Optional debugLevel?: string

    日志分级

    可选值,"off" | "error" | "warn" | "log" | "debug"

  • Optional isFixedDeviceId?: boolean

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

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

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

    注意:这个参数会影响多端互踢的策略。有关于多端互踢策略的配置可以参见服务器文档。

  • Optional lbsUrls?: string[]

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

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

  • Optional linkUrl?: string

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

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

  • Optional needReconnect?: boolean

    是否需要自动重连

  • Optional reconnectionAttempts?: number

    自动重连尝试次数

  • token: string
NIMOtherOptions: { cloudStorageConfig?: { s3?: any }; serverConfig?: ServerConfig; sessionConfig?: { lastMessageFilterFn?: any; unreadCountFilterFn?: any }; syncOptions?: SyncOptions }

Type declaration

  • Optional cloudStorageConfig?: { s3?: any }

    cloud storage 模块配置

  • Optional serverConfig?: ServerConfig

    私有化配置相关参数 这个参数仅在初始化有效,setOptionssetOptions中不生效

  • Optional sessionConfig?: { lastMessageFilterFn?: any; unreadCountFilterFn?: any }

    session 模块配置

    • lastMessageFilterFn?:function
      • lastMessageFilterFn(_msg: IMMessage): boolean
      • 过滤函数: 由在线/同步/多端同步的消息触发的更新会话过程中,该函数判定这条消息是否允许被计入 session.lastMessage 的更新

        默认返回 true,该消息计入 session.lastMessage 的更新。

        Parameters

        Returns boolean

    • unreadCountFilterFn?:function
      • unreadCountFilterFn(_msg: IMMessage): boolean
      • 过滤函数: 由在线/同步/多端同步的消息触发的更新会话过程中,该函数判定这条消息是否允许被计入 session 的未读数

        默认返回 true,该消息计入 session 未读数。

        Parameters

        Returns boolean

  • Optional syncOptions?: SyncOptions

    同步模块的选项配置

ServerConfig: { chunkUploadHost?: string; commonUploadHost?: string; downloadHostList?: string[]; downloadUrl?: string; nosCdnEnable?: boolean; uploadReplaceFormat?: string }

Type declaration

  • Optional chunkUploadHost?: string

    NOS上传地址(分片)

  • Optional commonUploadHost?: string

    NOS上传地址(直传)

  • Optional downloadHostList?: string[]

    收到哪些host地址,需要替换成downloadUrl,例:收到nos.netease.com/{bucket}/{obj}

  • Optional downloadUrl?: string

    接收到文件消息的替换模版 这个是用来接到消息后,要按一定模式替换掉文件链接的。给予一个安全下载链接。 例:'https://{bucket}-nosdn.netease.im/{object}'

  • Optional nosCdnEnable?: boolean

    服务器下发的域名存在,并且对象前缀匹配成功,那么强行替换为${protocol}${serverCdnDomain}/${decodePath.slice(prefixIndex)}

  • Optional uploadReplaceFormat?: string

    发送文件消息中文件的url的通配符地址,例:'https://{host}/{object}'

SyncOfflineMsgsResult: { msgs: IMMessage[]; sessionId: string; timetag: number }

Type declaration

  • msgs: IMMessage[]
  • sessionId: string
  • timetag: number
SyncOptions: { broadcastMsgs?: boolean; deleteSelfMsgs?: boolean; deleteSuperTeamMsg?: boolean; friendUsers?: boolean; friends?: boolean; msgReceipts?: boolean; myInfo?: boolean; myTeamMembers?: boolean; offlineMsgs?: boolean; recallMsg?: boolean; relations?: boolean; roamingMsgs?: boolean; sessionAck?: boolean; sessionHistoryMsgsDelete?: boolean; stickTopSessions?: boolean; superTeamRoamingMsgs?: boolean; superTeamSessionAck?: boolean; superTeams?: boolean; teams?: boolean }

Type declaration

  • Optional broadcastMsgs?: boolean

    是否同步离线的广播消息,默认 false

  • Optional deleteSelfMsgs?: boolean

    是否同步单向删除信息,默认 true

  • Optional deleteSuperTeamMsg?: boolean

    是否同步超大群撤回消息离线和漫游通知,默认 true

  • Optional friendUsers?: boolean

    是否同步好友的用户名片。默认 true

  • Optional friends?: boolean

    是否同步好友列表。默认 true

  • Optional msgReceipts?: boolean

    是否同步已读回执。默认 true

  • Optional myInfo?: boolean

    是否同步用户信息。默认 true

  • Optional myTeamMembers?: boolean

    是否同步当前用户的所有群的群成员信息。默认 false

  • Optional offlineMsgs?: boolean

    是否同步离线消息和离线系统通知。默认 true

  • Optional recallMsg?: boolean

    是否同步撤回消息离线和漫游通知。默认 true

  • Optional relations?: boolean

    是否同步黑名单和静音列表。默认 true

  • Optional roamingMsgs?: boolean

    是否同步漫游消息。默认 true

  • Optional sessionAck?: boolean

    是否同步消息会话 ack,时间戳单位毫秒。默认 false

    会话 ACK 代表本账号在此会话里读过的最新消息的时间戳

  • Optional sessionHistoryMsgsDelete?: boolean

    是否同步会话历史消息的删除信息。默认 true

  • Optional stickTopSessions?: boolean

    是否同步置顶会话信息,默认 false

  • Optional superTeamRoamingMsgs?: boolean

    是否同步超大群漫游消息。默认 true

  • Optional superTeamSessionAck?: boolean

    是否同步超大群会话 ack 位置列表,默认 false

  • Optional superTeams?: boolean

    是否同步超大群信息,默认 true

  • Optional teams?: boolean

    是否同步群列表。默认 true

SyncRoamingMsgsResult: { msgs: IMMessage[]; sessionId: string; timetag: number }

Type declaration

  • msgs: IMMessage[]
  • sessionId: string
  • timetag: number
TKickedReason: { clientType: TClientType; customClientType: number; ext?: string; message: string; reason: "unknow" | "samePlatformKick" | "serverKick" | "otherPlatformKick" | "silentlyKick" }

Type declaration

  • clientType: TClientType

    踢了本链接的那个客户端的类型

  • customClientType: number

    踢了本链接的那个客户端的自定义端类型

  • Optional ext?: string

    扩展字段

  • message: string

    原因的详细描述

  • reason: "unknow" | "samePlatformKick" | "serverKick" | "otherPlatformKick" | "silentlyKick"

    未知 | 互斥类型的客户端互踢-不允许同一个帐号在多个地方同时登录 | 服务器端发起踢客户端指令-被服务器踢了 | 被自己账号所在的其他端踢掉 | 被悄悄踢掉, 表示这个链接已经废掉了

TProxyMsg: { body: string; from: string; time: number }

Type declaration

  • body: string
  • from: string
  • time: number
TTransferTeamResult: { from: { account: string; id: string; type: TeamMemberType; updateTime: number }; team: Team; to: { account: string; id: string; type: TeamMemberType; updateTime: number } }

Type declaration

TUpdateSuperTeamManagersResult: { accounts: string[]; isManager: boolean; members: { account: string; id: string; type: SuperTeamMemberType; updateTime: number }[]; team: { memberUpdateTime: number; teamId: string } }

Type declaration

  • accounts: string[]
  • isManager: boolean
  • members: { account: string; id: string; type: SuperTeamMemberType; updateTime: number }[]
  • team: { memberUpdateTime: number; teamId: string }
    • memberUpdateTime: number
    • teamId: string
TUpdateTeamManagersResult: { accounts: string[]; isManager: boolean; members: { account: string; id: string; type: TeamMemberType; updateTime: number }[]; team: { memberUpdateTime: number; teamId: string } }

Type declaration

  • accounts: string[]
  • isManager: boolean
  • members: { account: string; id: string; type: TeamMemberType; updateTime: number }[]
  • team: { memberUpdateTime: number; teamId: string }
    • memberUpdateTime: number
    • teamId: string
TUpdateTeamMembersMute: { accounts: string[]; members: { account: string; id: string; mute: boolean; teamId: string; updateTime: number }[]; mute: boolean; team: Team }

Type declaration

  • accounts: string[]
  • members: { account: string; id: string; mute: boolean; teamId: string; updateTime: number }[]
  • mute: boolean
  • team: Team
TWillReconnect: { duration: number; retryCount: number }

Type declaration

  • duration: number

    重试间隔

  • retryCount: number

    重试次数