IM 即时通讯(增强版)
Web
新手接入指南
产品介绍
简介
产品优势
主要功能
功能介绍
账号集成与登录
基础消息功能
群组功能
聊天室功能
圈组功能
多端登录与互踢策略
海外数据中心
IM 平滑迁移方案
接口及业务限制
更新日志
IM UIKit 更新日志
NIM SDK 更新日志
体验 Demo
下载 SDK 与 Demo 源码
快速开始
跑通 IM Demo 源码
实现单聊消息收发(不含 UI)
实现圈组消息收发(不含 UI)
含 UI 集成
什么是 IM UIKit
IM UIKit 功能列表
快速集成 IM UIKit
非React框架集成 IM UIKit
组件导入
初始化
全局上下文
登录相关
实现消息收发及界面自定义
集成会话列表界面
集成会话消息界面
集成用户资料组件
集成通讯录界面
集成搜索组件
主题样式设置
语言设置
初始化(兼容 NIM SDK)
不含 UI 集成
SDK 集成概述
小程序环境集成声明
初始化与登录
消息收发
历史消息
消息扩展
最近会话
用户资料托管
好友关系托管
在线状态订阅
系统通知
群组功能
群组概述
群组管理
群成员管理
群消息管理
超大群功能
超大群概述
超大群管理
超大群成员管理
反垃圾
聊天室功能
聊天室概述
聊天室标签功能
快速实现聊天室登录
聊天室消息管理
聊天室成员管理
聊天室信息管理
聊天室队列服务
圈组功能
圈组概述
初始化与登录
通用接口校验说明
服务器相关
服务器概述
服务器管理
服务器成员管理
游客功能
服务器未读数管理
频道相关
频道概述
频道管理
频道黑白名单
频道分组
频道分组黑白名单
频道未读数管理
实时互动频道
搜索服务器与频道
身份组相关
身份组概述
身份组应用场景
服务器身份组
频道身份组
频道用户定制权限
频道分组身份组
自定义权限项
成员权限查询与判定
身份组相关查询
圈组订阅机制
圈组消息相关
圈组消息收发
圈组消息撤回
圈组消息更新
圈组消息删除
消息正在输入
获取频道最后一条消息
会话消息回复(Thread)
圈组快捷评论
圈组消息搜索
查询历史消息
圈组系统通知相关
圈组系统通知概述
圈组系统通知收发
圈组系统通知更新
圈组内容审核
圈组第三方回调
圈组相关抄送
圈组各端接口命名差异
融合存储方案
uniapp 推送相关
最佳实践
聊天室重要消息投递
API 参考
NIM SDK API 参考
状态码
IM 控制台指南
创建应用
注册 IM 账号
升级服务
服务协议

NIM SDK 更新日志

更新时间: 2023/02/03 10:55:24

[0.11.0] - 2022-12-27

该版本的圈组模块新增了游客功能。

新增特性

序号
新增特性
特性描述
相关文档
1 游客功能 以游客身份进入服务器,可查询部分信息和接收消息,也可接收部分系统通知 游客功能
2 频道对游客的可见性 创建和更新频道时可设置频道是否对游客可见 频道管理
3 频道分组对游客的可见性 如果频道对游客可见,则包含该频道的频道分组也对游客可见,且频道分组的查看模式变更可能导致频道对游客的可见性变更 频道分组
4 频道可见性变更系统通知 新增系统通知类型channelVisibilityToVisitorUpdate,表示频道对游客的可见性发生变更 游客可接收的系统通知

API 变更

新增 API

API
API 说明
QChatServerServiceInterface.enterAsVisitor 以游客身份进入服务器
QChatServerServiceInterface.leaveAsVisitor 以游客身份离开服务器
QChatChannelServiceInterface.subscribeAsVisitor 以游客身份订阅频道
QChatServerServiceInterface.subscribeAsVisitor 以游客身份订阅服务器

变更 API

API
API 说明 变更说明
createChannel 创建频道 新增参数visitorMode,用于设置频道是否对游客可见
udpateChannel 修改频道信息 新增参数visitorMode,用于设置频道是否对游客可见

优化改进

被拉黑方拉黑方发出的消息体的服务端 ID 逻辑优化。

问题修复

  • 修复当会话数量超过 10 个时,调用resetAllSessionsUnreadCount方法异常报错的问题。

  • 修复其他已知问题。

[0.9.2] - 2022-10-27

新增特性

v0.9.3 的聊天室模块,新增根据标签(Tags)查询聊天室历史消息的功能,具体请参见根据标签查询历史消息

新增事件

聊天室模块新增 tagsUpdate事件,回调包含变更后的标签信息。

API 新增

API
API 说明
getHistoryMsgsByTags 通过聊天室标签(可多个)来检索聊天室历史消息

[0.9.0] - 2022-9-26

新增特性

序号
新增特性
特性描述
相关文档
1 @身份组 支持在圈组发送消息时@指定身份组 圈组消息收发
2 身份组自定义权限 支持通过服务端 API 为身份组添加自定义权限项,帮助开发者快速实现符合自身业务需求的权限管控能力 自定义权限

API 变更

API
API 说明
变更说明
sendMessage 在圈组的频道中发送消息 新增参数mentionRoleIds,如传入该参数,则表示发送的消息需要@指定的身份组。@身份组需要拥有“@身份组”权限(mentionedRole
updateServerRole 修改服务器身份组
  • 可配置的权限项新增“@身份组”(mentionedRole)。拥有该权限的成员可在圈组发送消息时@指定身份组(最多10个)
  • auths权限列表中新增自定义权限项(如果已通过服务端 API 创建),键值大于或等于 10000 的权限项即为自定义权限
updateChannelRole 修改频道身份组
  • 可配置的权限项新增“@身份组”(mentionedRole)。拥有该权限的成员可在圈组发送消息时@指定身份组(最多 10 个)
  • auths权限列表中新增自定义权限项(如果已通过服务端 API 创建),键值大于或等于 10000 的权限项即为自定义权限
updateChannelCategoryRole 修改频道分组身份组
  • 可配置的权限项新增“@身份组”(mentionedRole)。拥有该权限的成员可在圈组发送消息时@指定身份组(最多 10 个)
  • auths权限列表中新增自定义权限项(如果已通过服务端 API 创建),键值大于或等于 10000 的权限项即为自定义权限
updateChannelCategoryMemberRole 修改频道分组下的用户定制权限
  • 可配置的权限项新增“@身份组”(mentionedRole)。拥有该权限的成员可在圈组发送消息时@指定身份组(最多 10 个)
  • auths权限列表中新增自定义权限项(如果已通过服务端 API 创建),键值大于或等于 10000 的权限项即为自定义权限
updateMemberRole 修改(频道下的)用户定制权限
  • 可配置的权限项新增“@身份组”(mentionedRole)。拥有该权限的成员可在圈组发送消息时@指定身份组(最多 10 个)
  • auths权限列表中新增自定义权限项(如果已通过服务端 API 创建),键值大于或等于 10000 的权限项即为自定义权限
checkPermissions 查询自己是否拥有某些权限 支持查询自定义权限。auths权限列表中新增自定义权限项(如果已通过服务端 API 创建),键值大于或等于 10000 的权限项即为自定义权限
checkPermission 查询自己是否拥有某个权限 支持查询自定义权限。 auths权限列表中新增自定义权限项(如果已通过服务端 API 创建),键值大于或等于 10000 的权限项即为自定义权限

优化改进

  • IM 会话中撤回消息后重置未读数更新: 若会话的未读数已经为 0,不需要触发协议,也不更新会话。
  • 修正更新会话 lastmsg 的条件,补充处理一种情况:本地发送消息时,本地时间故意调的比远端服务器的大,导致收到消息回包后无法触发 session.lastMsgstatus 从 sending 到 sent 状态的更新。
  • 调用resetSessionUnreadCount时 本地的时间比服务器的小上几秒钟,导致本地时间不可信,所以修复为使用 lastMsg.time 或者 session.updateTime
  • 修复发送文件消息时磁盘删除对应选中资源后没有回调。
  • 修复其他已知问题。

[0.8.5] - 2022-8-29

新增特性

V0.8.5 的圈组模块新增搜索频道成员功能,具体请参见搜索服务器和频道

新增 API

V0.8.5 的圈组模块引入了如下 API。

API
API 说明
channelMemberSearch 搜索频道成员

[0.8.0] - 2022-8-8

新增特性

V0.8.0 的圈组模块新增如下特性:

序号
新增特性
特性描述
相关文档
1 批量查询权限 支持查询自己是否拥有某些权限 查询自己是否拥有某些权限
2 以圈组服务器维度处理未读消息数 支持订阅服务器所有频道的消息,且支持清空服务器未读数 服务器未读数
3 搜索消息 支持分页搜索对用户可见的消息。您可通过subType参数进行相应的上层业务开发,实现消息可见性逻辑。支持配置该参数的 API,请参见下文的 API 变更说明 搜索消息

新增事件

V0.8.0 的圈组模块新增unreadInfos事件,返回结果为QChatChannelUnreadInfo数组。该事件即将替代unreadInfo,请替换掉您代码中监听的unreadInfo事件。

API 变更

V0.8.0 的圈组模块引入了如下新增 API 和 变更 API。

新增 API

API
API 说明
checkPermissions 查询自己是否圈组内的某些(圈组)权限
searchMsgByPage 分页搜索圈组消息
subscribeAllChannel 一次性订阅服务器下最多 200 个频道,可按不同的订阅策略对频道相关事件和系统通知进行订阅。单次调用可传入的服务器 ID 数量上限为 10 个。即使多次调用,单个服务器下最多仅能订阅 200 个 频道
markRead 清空服务器未读数,即将服务器下所有频道的消息未读数都清空

变更 API

V0.8.0 版本,QChatMsgServiceInterface的如下方法存在变更。

API
变更说明
sendMessage 新增subType入参,表示消息子类型。该参数可以用来做特殊渲染、可见性判断、动画效果展示等。例如,您可通过该参数开发相应的上层业务逻辑,实现发送消息时设置消息对其他用户的可见性。返回的消息体QChatMessage新增subType参数
updateMessage 新增subType入参,表示消息子类型。用户更新消息时可设置消息子类型,设定消息对其他用户的可见性。返回的消息体QChatMessage新增subType参数
deleteMessage 返回的消息体QChatMessage新增subType参数
resendMessage 返回的消息体QChatMessage新增subType参数
revokeMessage 返回的消息体QChatMessage新增subType参数
replyMessage 返回的消息体QChatMessage新增subType参数
getMessageHistoryByIds 返回的消息体QChatMessage新增subType参数
getHistoryMesssage 返回的消息体QChatMessage新增subType参数

[0.7.1] - 2022-7-29

新增特性

新增最近会话置顶功能。

新增 API

API
API 说明
addStickTopSession 添加云端置顶的会话
deleteStickTopSession 取消云端置顶的会话
updateStickTopSession 更新云端置顶的会话

[0.7.0] - 2022-7-25

新增特性

序号
新增特性
特性描述
相关文档
1 实时互动频道 圈组新增实时互动频道,用户可在实时互动频道进行音视频通话等音视频相关操作 实时互动频道
2 圈组搜索结果自定义排序 搜索圈组服务器和频道的匹配结果,可按自定义排序 圈组搜索功能
3 查询邀请/申请记录 查询服务器的邀请和申请记录,以及用户个人被邀请加入服务器和申请加入服务器的记录
4 生成邀请码 拥有“邀请他人加入服务器的权限”的用户可生成邀请码,其他用户可通过邀请码加入服务器 生成邀请码
5 通过邀请码加入服务器 获取到邀请码的用户,可通过邀请码加入服务器 通过邀请码加入服务器

优化改进

新增自动取消订阅逻辑:新增 频道对当前用户可见性变更当前用户进入/退出服务器 内置系统通知类型。当收到前者时,如存在相应频道的订阅信息,则自动取消订阅该频道的请求。当收到后者(且为退出服务器)时,如存在相应服务器的订阅信息,则自动取消订阅该服务器以及该服务器下所有已订阅频道的请求。圈组的具体订阅机制,请参见圈组订阅机制

API 变更

新增 API

API
API 说明
generateInviteCode 生成邀请码
joinByInviteCode 通过邀请码加入服务器
getInviteApplyRecordOfServer 查询服务器下的申请记录和邀请记录
GetInviteApplyRecordOfSelf 用户查询自己的申请记录和邀请记录

变更 API

API
变更说明
inviteServerMembers 入参新增ttl(可选),表示加入服务器邀请的有效时长。回参新增requestIdexpiredTime,分别表示邀请的标识和邀请的到期时间戳
applyServerJoin 入参新增ttl(可选),表示加入服务器申请的有效时长。回参新增requestIdexpiredTime,分别表示申请的标识和申请的到期时间戳
acceptServerApply 新增requestId入参(必传),表示加入服务器申请的标识
rejectServerApply 新增requestId入参(必传),表示加入服务器申请的标识
acceptServerInvite 新增requestId入参(必传),表示加入服务器邀请的标识
rejectInviteServer 新增requestId入参(必传),表示加入服务器邀请的标识
CreateChannel 可创建的频道类型枚举增加枚举值media,表示 实时互动频道。
updateServerRoleOptions 可修改的服务器身份组权限新增实时互动频道相关权限、邀请申请管理权限和邀请申请历史记录查看权限
UpdateChannelRole 可修改的频道身份组权限新增 实时互动频道相关权限
updateMemberRoleOptions 可修改的个人定制权限新增实时互动频道相关权限
updateChannelCategoryRoleOptions 可修改的个人定制权限新增实时互动频道相关权限
UpdateChannelCategoryMemberRoleOptions 可修改的频道分组维度的个人定制权限新增实时互动频道相关权限
serverSearchByPage 新增入参sort,表示排序条件
getChannelSearchByPage 新增入参sort,表示排序条件

[0.6.4] - 2022-7-20

NIM Web SDKQChat Web SDK聊天室 Web SDK 新增了setOptions方法,您可以调用此方法更新初始化传入的参数,在初始化完成后使用。

[0.6.3] - 2022-6-22

该版本优化了圈组频道中调用标记消息已读 markMessageRead 方法的频控策略。

针对同一个频道(channelId),调用 markMessageRead 方法存在频控限制,200 ms 内只能调用一次。

[0.6.2] - 2022-6-13

该版本在圈组模块增加了圈组系统通知的类型。

相关模块
新增特性
相关文档
圈组系统通知 新增以下 5 种圈组系统通知类型:
  • 加入服务器身份组成员
  • 移除服务器身份组成员
  • 更新服务器身份组权限
  • 更新频道身份组权限
  • 更新频道个人定制权限
具体可查看 ESystemMessageType
系统通知管理

[0.6.1] - 2022-6-2

该版本在圈组模块增加了获取频道最后一条消息和服务器未读信息的能力。

新增特性

序号
新增特性
特性描述
相关文档
1 获取频道最后一条消息 支持获取多个频道的最后一条消息,从而在频道列表展示各频道的最后一条消息 获取频道最后一条消息
2 获取服务器未读信息 支持获取服务器下所有频道的累加消息未读数 获取服务器未读数

特性优化

ESM 模块的 tree-shaking 优化。

新增API

API
API 说明
getLastMessageOfChannels 获取多个频道的最后一条消息

新增事件

事件
说明
serverUnreadInfo 服务器未读信息变化事件

[0.6.0] - 2022-5-24

该版本在圈组模块增加了频道分组、消息正在输入状态显示和搜索功能等更新。

新增特性

序号
新增特性
特性描述
相关文档
1 频道分组 支持对频道进行分组管理 频道分组
2 频道分组黑白名单 支持为频道分组设置黑白名单成员/身份组,与频道类型(私密/公开)共同判定频道分组是否对用户可见 频道分组黑白名单
3 频道分组身份组 支持在频道分组维度设置身份组和定制权限,增加用户权限控制的层级 频道分组身份组
4 消息正在输入 支持显示频道消息正在输入 消息正在输入
5 圈组搜索功能 支持通过关键字对服务器、频道和服务器成员进行搜索 圈组搜索功能

API 新增与变更

新增 API

API
API 说明
createChannelCategory 创建频道分组
removeChannelCategory 删除频道分组
updateChannelCategory 修改频道分组信息
getChannelCategoriesPage 查询服务器下的频道分组列表
getChannelCategoryChannelsPage 分页查询频道分组下频道列表
getChannelCategoriesByID 根据频道分组的 ID 查询频道分组
updateChannelCategoryWhiteBlackRole 更新频道分组黑白名单身份组
getExistingChannelCategoryWhiteBlackRoles 根据身份组 ID 查询频道分组白/黑名单身份组列表
getChannelCategoryWhiteBlackRolesPage 分页查询频道分组黑白名单身份组列表
updateChannelCategoryWhiteBlackMembers 更新频道分组白/黑名单成员
getChannelCategoryWhiteBlackMembers 根据成员 ID 查询频道分组黑白名单列表
getChannelCategoryWhiteBlackMembersPage 分页查询频道分组白/黑名单成员列表
addChannelCategoryRole 创建频道分组身份组。创建后,默认继承服务器身份组的权限。如需更改权限,需调用updateChannelCategoryRole
removeChannelCategoryRole 删除频道分组身份组
updateChannelCategoryRole 更新频道分组身份组。设置频道分组身份组的权限,需调用该方法
getChannelCategoryRole 查询频道分组身份组信息
addChannelCategoryMemberRole 创建频道分组某人的定制权限,创建后还需调用updateChannelCategoryMemberRole才能授予某人权限
removeChannelCategoryMemberRole 删除频道分组某人的定制权限
updateChannelCategoryMemberRole 修改频道分组某人的定制权限。创建某人定制权限后,需再调用本方法才能授予某人权限
getChannelCategoryMemberRole 查询频道分组某人的定制权限
sendTypingEvent 发送正在输入事件系统通知
serverSearchByPage 分页搜索服务器
serverMemberSearchByPage 搜索服务器成员
getChannelSearchByPage 分页搜索频道

变更 API

API
变更说明
createChannel 新增categoryIdsyncMode参数,调用时传入categoryId可将频道加入某个频道分组;通过设置syncMode,可实现频道数据与频道分组数据的同步。具体同步的数据包括查看模式(私密或公开)、黑白名单和身份组权限。

[0.5.1] - 2022-04-22

修复 npm install 失败的问题 ( 由 package.json 里的 denpencies 存在无法安装的依赖而导致)。

[0.5.0] - 2022-04-22

如您安装了 0.5.0 版本的 SDK,强烈建议您将其升级至 0.5.1 版本。0.5.1 版本修复了 0.5.0 版本中存在的 npm install 失败的问题。

新增特性

圈组新增特性

序号
新增特性
特性描述
相关文档
1 圈组服务器新增封禁功能 新增新增封禁服务器其他成员的权限(banServerMember)。拥有该权限的服务器成员可封禁服务器内的其他成员。被封禁者无法再次进入服务器,申请邀请均不可以。仅可封禁比自己身份组低的身份组用户(自己最高身份组内的成员和高于自己最高身份组的成员,均不可以封禁)。被封禁用户自动被踢出服务器且所有身份组去除。同时可以查询某个服务器下封禁名单。
2 圈组新增快捷评论功能 给消息加表情评论,可以有多人评论同一条消息,可以有多人评论同一表情 快捷评论
3 圈组新增消息回复功能 支持 Thread 聊天:回复消息,创建消息子区:1.消息子区第一条消息是根消息 (threadMsg) 2.每一条消息都有父消息,即该消息回复的消息(replyMsg)。 Thread 聊天
4 圈组补充消息抄送能力 消息支持抄送和回调。 抄送相关
5 圈组支持接入安全通 安全通(即易盾反垃圾业务)在消息(或系统通知)发送、消重发和更新,以及服务器、频道和身份组创建(或更新)会对相应内容进行安全审核。

聊天室新增特性

新增聊天室队列服务。聊天室队列指聊天室(房间)中由多个元素(key-value 键值对)构成的队列,主要应用于直播连麦场景。 功能详情请参见聊天室队列服务

特性优化

圈组特性优化

圈组支持查询当前登录账号在某个服务器/频道是否有该权限,详情请参见查询自己是否拥有某个权限

SDK 跨平台兼容性优化

SDK 增加对微信小程序和支付宝小程序设配。

0.4.2

  • 优化: 优化了 TS 定义
  • 修复: 修复了 nim 发送消息的 needPushNick 参数设置为 true,不能真的让移动端收到推送里的昵称的问题。

连接相关的优化或修复有:

  • 优化: 缩短了 nim sdk 对于 lbs 请求的超时时间的默认值,降至 10 s。
  • 优化: 优化了 qchat,nim,chatroom 三个 sdk 的重连表现。sdk 目前针对初始化的连接失败都会断开并且抛出异常,重连阶段尝试连接失败,只会记录日志而不会向上抛出异常。

0.4.0

  • 功能更新: 提供圈组 QChatSDK,参见 QChat_BROWSER_SDK.js。相关功能介绍和开发集成请分别参见什么是圈组圈组开发流程
  • 功能优化: 优化建立连接的一些表现,如允许传入多个 lbsUrls,遍历找到一个可用值。

0.3.2

  • 问题修复: 修复调用 resetAllSessionsUnreadCount api 无响应的问题

0.3.1-beta1

功能更新: 增加对微信小程序、支付宝小程序等环境的适配

  • 功能优化: 变更 crypto-js 库的引入方式

0.3.0

  • 功能更新: 追加 deleteSelfMsgs 单向删除接口。
  • 功能更新: 推送插件以及适配代码,推送功能的使用参见文章:uniapp 推送相关
  • 功能优化: uniapp 平台适配优化,能够支持编译去支付宝小程序,微信小程序
  • 功能优化: 优化撤回消息逻辑,使撤回消息后 session 的 unread 数等参数能得到正确的更新。
  • 功能优化: 聊天室追加鉴权方式
  • 问题修复: 修复登出协议的一些问题

0.2.0

  • 功能更新: 追加 superTeam 超级群逻辑
  • 问题修复: 修复同步阶段错误的把 syncRelations 当作是同步回包的 bug
  • 问题修复: 修复同步包超时问题
  • 问题修复: 修复被拉黑的情况下消息漫游下来的状态显示成功
  • 功能优化: 优化,追加 esm/index 供开发者上层使用 esm 打包的模块,便于做 tree shaking 节省体积
  • 功能优化: 使用 lodash 替代内部一些函数,打包体积增大 30kb

0.1.1

  • 初始化参数支持传入 lbsUrls 和 linkUrl 来指定默认的连接地址
  • 修复 NIM 建立连接没有区别出自动重连的情况

0.1.0

初版上线,拥有好友,用户,群,消息,会话,透传协议,系统消息,聊天室能力。

此文档是否对你有帮助?
有帮助
我要吐槽
  • [0.11.0] - 2022-12-27
  • 新增特性
  • API 变更
  • 新增 API
  • 变更 API
  • 优化改进
  • 问题修复
  • [0.9.2] - 2022-10-27
  • 新增特性
  • 新增事件
  • API 新增
  • [0.9.0] - 2022-9-26
  • 新增特性
  • API 变更
  • 优化改进
  • [0.8.5] - 2022-8-29
  • 新增特性
  • 新增 API
  • [0.8.0] - 2022-8-8
  • 新增特性
  • 新增事件
  • API 变更
  • 新增 API
  • 变更 API
  • [0.7.1] - 2022-7-29
  • 新增特性
  • 新增 API
  • [0.7.0] - 2022-7-25
  • 新增特性
  • 优化改进
  • API 变更
  • 新增 API
  • 变更 API
  • [0.6.4] - 2022-7-20
  • [0.6.3] - 2022-6-22
  • [0.6.2] - 2022-6-13
  • [0.6.1] - 2022-6-2
  • 新增特性
  • 特性优化
  • 新增API
  • 新增事件
  • [0.6.0] - 2022-5-24
  • 新增特性
  • API 新增与变更
  • 新增 API
  • 变更 API
  • [0.5.1] - 2022-04-22
  • [0.5.0] - 2022-04-22
  • 新增特性
  • 圈组新增特性
  • 聊天室新增特性
  • 特性优化
  • 圈组特性优化
  • SDK 跨平台兼容性优化
  • 0.4.2
  • 0.4.0
  • 0.3.2
  • 0.3.1-beta1
  • 0.3.0
  • 0.2.0
  • 0.1.1
  • 0.1.0