Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
205 changes: 86 additions & 119 deletions docs/guides/introduction/features.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,135 +4,102 @@ hide_title: true
sidebar_position: 4
---

## 开源版功能明细
# 开源功能明细

开源版包含以下组件,每个组件的具体功能描述如下:
## 一、开源版包含什么

### 1. IM SDK/IM Server
### 核心组件

- **功能描述:**
- 提供即时通讯的基础功能。
- 由客户端 IMSDK 和服务端 IMServer 组成。
- **特性:**
- 不包含用户界面(UI),需要开发者自行集成到应用中。
- 支持消息发送、接收及管理等核心功能。
| 组件 | 协议 | 定位 | 说明 |
| --- |-----------------| --- | --- |
| OpenIMClientSDK | `AGPL-3.0` | 客户端 SDK | 负责消息、会话、群组、好友等客户端通信能力,需要开发者集成到自己的应用 |
| OpenIMServer | `Apache-2.0` | IM 基础服务端 | 负责即时通讯核心链路、消息同步、REST API、Webhook 等能力 |
| ChatServer | `Apache-2.0` | 业务扩展服务端 | 负责注册、登录、APP 管理等业务扩展能力;如果你已有自有账号体系,可按需接入或不部署 |
| 客户端 Demo / 示例 UI | `AGPL-3.0` | SDK 集成示例 | 提供示例代码,用于演示如何接入 OpenIMClientSDK,不代表完整商用客户端 |

### 2. 客户端 UI
### 扩展组件

- **功能描述:**
- 提供demo,仅用于演示如何引入和使用客户端 SDK。
- **特性:**
- 提供基础的用户界面示例,帮助开发者理解 SDK 的集成方式。
- 不包括完整的应用功能,需根据需求自行扩展。
- 完整的客户端UI不开源。
| 组件 | 协议 | 定位 | 说明 |
| --- |----------------| --- | --- |
| 纯 JS SDK | `ARR`(闭源) | 纯 JS 的客户端 SDK | 一般用于小程序开发 |
| Web客户端 | `ARR`(闭源,可免费使用) | 面向终端用户的完整产品界面 | 开箱即用 |
| 管理后台前端 | `ARR`(闭源,可免费使用) | APP 管理员使用的后台页面 | 如需管理能力,可基于 APP 管理员接口自行构建 |

### 3. 音视频通话
## 二、OpenIMClientSDK + OpenIMServer 开源能力明细

- **功能描述:**
- 支持一对一的音视频通话功能。
- **特性:**
- 提供基本的音视频通话接口。
- 群组音视频通话或视频会议功能不开源。
本文重点说明 OpenIMClientSDK 与 OpenIMServer 在开源版中已经提供的核心能力。

### 4. 管理后台前端
### 1. 好友与关系链

- **功能描述:**
- 用于管理和展示 IM 系统的前端界面。
- **特性:**
- 提供基本的后台管理功能,如用户管理、消息管理等。
- 前端代码不开源。
---
- 支持查找、申请、搜索、添加及删除好友。
- 支持同意和拒绝好友申请。
- 支持好友备注。
- 支持是否允许添加好友的设置。
- 好友列表及好友资料支持实时同步。

### 2. 黑名单

- 支持限制消息和音视频通话。
- 黑名单列表实时同步。
- 支持添加和移出黑名单。

### 3. 群组

- 支持创建和解散群组。
- 支持申请加群、邀请加群、退出群组及移除群成员。
- 支持群名、群头像更改及群资料变更通知和实时同步。
- 支持进群验证设置。
- 支持群主转让。
- 支持不允许查看其他群成员资料和不允许添加其他群成员为好友的设置。
- 支持设置和移除群管理员。
- 支持搜索群成员和设置群成员群内资料。
- 支持全体禁言及指定群成员禁言。
- 支持发布群公告。

### 4. 消息

- 支持文本、图片、视频、表情、文件、语音、名片、地理位置、自定义及群公告消息。
- 支持离线消息、漫游消息、多端消息及历史消息。
- 支持单选消息转发和多选消息合并转发。
- 支持消息删除、消息清空、消息复制及消息撤回。
- 支持撤回后重新编辑消息。
- 支持群组内 @、单聊正在输入、阅后即焚、新消息勿扰、清空聊天记录、新成员查看群聊历史消息、新消息提示。
- 支持本地消息搜索。

### 5. 会话

- 支持置顶会话。
- 支持删除会话。
- 支持搜索本地会话。
- 支持会话已读。
- 支持会话免打扰。

### 6. 服务端开放能力

- 提供认证管理、用户管理、关系链管理、群组管理、会话管理、消息管理等 REST API。
- 提供群组回调、消息回调、推送回调、关系链回调及用户回调等 Webhook 能力。

### 7. 容量与部署

- 好友容量最高支持 3000。
- 群组最高支持 10 万人规模。
- 支持秒级同步。
- 支持源码部署集群。

### 8. 多端登录策略

- 支持所有平台不互踢。
- 支持每个平台各登录一个设备。
- 支持 PC 端、移动端、Pad 端、Web 端及小程序端各登录一个设备。

### 9. 音视频能力

- 支持一对一音视频通话基础能力。
- 群组音视频通话或视频会议能力不开源。
- 一对一音视频通话接入时,超时未接通、取消等业务细节需开发者自行完善。

## IMSDK/IMServer 功能说明

本文档详细介绍IMSDK/IMServer 开源版的各项功能,帮助用户了解其具体能力。
### 好友功能

- **基本操作**
- 支持查找、申请、搜索、添加及删除好友。
- **好友申请**
- 支持同意和拒绝好友申请。
- **好友备注**
- 用户可以为好友添加备注信息。
- **添加好友权限**
- 支持是否允许添加好友的设置。
- **实时同步**
- 好友列表及好友资料支持实时同步。

### 黑名单功能
- 支持限制消息和音视频通话。
- 黑名单列表实时同步。
- 支持添加和移出黑名单。

### 群组功能

- **群组管理**
- 支持创建和解散群组。
- **群成员管理**
- 支持申请加群、邀请加群、退出群组及移除群成员。
- **群资料同步**
- 群名、群头像更改及群资料变更通知和实时同步。
- **进群验证**
- 支持进群验证设置。
- **群主管理**
- 支持群主转让。
- **成员权限设置**
- 支持不允许查看其他群成员资料和不允许添加其他群成员为好友的设置。
- 支持设置和移除群管理员。
- 支持搜索群成员和设置群成员群内资料。
- **禁言功能**
- 支持全体禁言及指定群成员禁言。
- **群公告**
- 支持发布群公告。

### 消息功能
- **消息类型**
- 支持文本、图片、视频、表情、文件、语音、名片、地理位置、自定义及群公告消息。
- **消息管理**
- 支持离线消息、漫游消息、多端消息及历史消息。
- 支持单选消息转发和多选消息合并转发。
- 支持消息删除、消息清空、消息复制及消息撤回。
- 支持撤回后重新编辑消息。
- **消息互动**
- 支持群组内@功能、单聊正在输入、阅后即焚、新消息勿扰、清空聊天记录、新成员查看群聊历史消息、新消息提示。
- 支持本地消息搜索。

### 会话功能
- **支持置顶会话**
- **删除会话**
- **搜索本地会话**
- **会话已读**
- **会话免打扰**

### REST API
- **认证管理**
- **用户管理**
- **关系链管理**
- **群组管理**
- **会话管理**
- **消息管理**

### Webhook 回调
- **支持群组回调、消息回调、推送回调、关系链回调及用户回调**

### 容量和性能

- **好友容量**
- 支持最多 3000 好友。
- **群组容量**
- 支持 10 万人规模的大群。
- **同步速度**
- 支持秒级同步。
- **部署方式**
- 支持源码部署集群。

### 互踢策略
- **所有平台不互踢**
- **每个平台各只能登录一个设备**
- **PC端、移动端、Pad端、Web端及小程序端各只能登录一个设备**

### 音视频通话
- **一对一音视频通话,需自行完善细节,如超时未接通,取消等逻辑**
## 三、如何理解 OpenIMSDK 的开源范围

- 如果你只需要即时通讯核心能力,重点集成 OpenIMClientSDK,并部署 OpenIMServer。
- 如果你还需要注册、登录、APP 管理等业务扩展能力,再按需部署 ChatServer。
- 如果你需要面向终端用户的完整产品界面或 APP 管理员后台页面,需要基于 SDK、REST API 与业务需求自行实现。
141 changes: 29 additions & 112 deletions docs/guides/introduction/version.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,127 +6,44 @@ sidebar_position: 5

# 版本说明

## 一、生产环境版本选择建议

生产环境请以 GitHub 上发布的**最新稳定版**为准,也就是 GitHub Releases 页面绿色 **Latest** 标记对应的**最新正式发布版**。

**OpenIMSDK** 长期维护的版本包括:
| 组件 | 版本来源 |
| --- | --- |
| OpenIMServer | 以 [OpenIMServer Releases](https://github.com/openimsdk/open-im-server/releases) 页面绿色 **Latest** 对应的正式发布版为准 |
| ChatServer | 以 [ChatServer Releases](https://github.com/openimsdk/chat/releases) 页面绿色 **Latest** 对应的正式发布版为准 |
| OpenIMClientSDK | 以你实际集成的客户端 SDK 仓库 Releases 页面绿色 **Latest** 对应的正式发布版为准 |

- **SDK** v3.8 系列
- **Server** v3.8 系列
- **Chat** v1.8 系列
- 建议始终使用明确的稳定版 `tag`,不要只依赖分支名或手动猜测版本顺序。
- 如需问题复现、灰度回滚或多环境统一,请固定到明确的正式版 `tag`。
- OpenIMServer 与 ChatServer 一起部署时,建议按发布说明选择相互对应的正式版 `tag`。
- OpenIMClientSDK 接入时,建议同时核对目标服务端版本范围与对应 release note,避免跨版本能力差异。

在同一大版本内,不同小版本之间数据兼容。我们建议您升级到最新的子版本,升级时请使用 **tag** 以确保版本的准确性和稳定性。
## 二、如何查看当前最新稳定版

由于维护资源有限,其他版本将不再得到支持。请各位用户尽快完成升级,以享受最新的功能和优化。
可以直接通过 GitHub 的 `releases/latest` 跳转获取当前正式版 `tag`:

## 当前最新稳定版本
```bash
SERVER_LATEST_TAG=$(basename "$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/openimsdk/open-im-server/releases/latest)")
echo "$SERVER_LATEST_TAG"

- **Server**: v3.8.3-patch.3
- **SDK**: v3.8.3-patch.3
- **Chat**: v1.8.4-patch.2
CHAT_LATEST_TAG=$(basename "$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/openimsdk/chat/releases/latest)")
echo "$CHAT_LATEST_TAG"
```

---

# 版本更新日志

# v3.8.3-patch (2025-3-7)

## Server v3.8.3-patch.3 更新内容

| **类别** | **内容** |
| ------------ | ------------------------------------------------------------------------------ |
| **bug 修复** | 修复了 seq 转换工具在失败时没有正确退出的问题。 |
| | 修复了设置 KickedToken 错误的问题。 |
| | 修复了定时销毁信息错误的问题。 |
| | 修复了异常消息缺少时间,导致 SDK 异常的问题。 |
| | 修复了撤回已经退出群聊成员的信息,会导致崩溃的问题。 |
| | 修复了用户设置定时销毁信息的时间单位不正确的问题。 |
| | 修复了 seq 转换工具没有在 docker 环境下被正确读取的问题。 |
| | 修复了离线推送推送错误和没有角标的问题。 |
| | 修复了设置群信息没有正确通知到 SDK 的问题。 |
| | 修复了管理员变更后排序错误的问题。 |
| | 修复了加入群聊的通知类型不正确的问题。 |
| **功能优化** | 优化了 sendNotification 的传递方式,可以通过参数来选择是否携带发送信息的标识。 |
| | 优化了 docker 中映射 mongo 备份文件夹,并优化了日志打印 |
| | 优化了批量获取增量群成员的方法。 |

## SDK v3.8.3-patch.3 更新内容

| **类别** | **内容** |
| ------------ | ------------------------------------------------------ |
| **bug 修复** | 修复了在较差网络环境时,异常消息可能重复的问题。 |
| | 修复了会话 id 获取序列化的处理错误的问题。 |
| | 修复了服务器崩溃或 req 缓存过期而导致消息间隙的问题。 |
| | 修复了改变自己头像时,会话中的头像不会同步更新的问题。 |
| | 修复了 seq 为 0 时,会导致同步失败的问题。 |
| | 修复了获取群成员信息可能会失效的问题。 |
| | 修复了在服务器直接拉取的消息会重复的问题。 |
| **功能优化** | 优化了好友申请和群组申请过多时,会导致卡顿的问题。 |

## Chat v1.8.4-patch.2 更新内容

| **类别** | **内容** |
| ------------ | ---------------------------------------------------- |
| **bug 修复** | 修复了用户属性迁移工具,转换时无限循环的问题。 |
| | 修复了获取缓存中的 AdminToken 可能会导致死锁的问题。 |
| **功能优化** | 优化了 proto gen,并使用了新版本的 grpc 生成工具。 |
## 三、到哪里看发布说明

---

# v3.8.3 (2025-1-10)

## Server v3.8.3 更新内容

| **类别** | **内容** |
| ------------ | --------------------------------------------------------------------------- |
| **新特性** | 实现了 GetLastMessage 接口。 |
| | 实现了同步 seq_user 的最大最小 seq 到 conversation 集合中用于 isEnd 判定 |
| **功能优化** | 优化了 Crontask 定时删除消息的实现。 |
| | 将 upload log 接口的 `systemType` 字段改成 `AppFramework` |
| | 优化的 RPC 调用的通用方法 |
| | 优化了消息缓存的逻辑 |
| | 优化了日志输出函数 |
| | 在 NotificationAccountInfo 结构体添加`AppMangerLevel`字段 |
| **bug 修复** | 修复群成员头像设置无效。 |
| | 修复了打印 log.ZPanic 的问题。 |
| | 修复了当 SDK 拉取信息时,Server 返回 isEnd 来控制拉取信息。 |
| | 修复了 rpc 发生 panic 时的恢复。 |
| | 修复了设置 IsPrivateChat 时,修改其他字段不会生效。 |
| | 修复了当引用消息时,偶现的原消息被删除的问题。 |
| | 修复了关闭 `EnableHistoryForNewMembers`时,新成员仍能读到最后一条历史信息。 |
| | 修复了 KickTokens 保存错误的问题。 |
| | 修复了转发@消息到其他群中,造成异常会话生成的问题。 |
| | 修复了在线状态错误的问题。 |
| | 修复了服务发现和自动设置端口的错误 |
| | 修复了 GetUsersOnline 时获取了错误的在线列表。 |
| **其他** | 更新了前端镜像的版本 |

## SDK v3.8.3 更新内容
- OpenIMServer:查看 [OpenIMServer Releases](https://github.com/openimsdk/open-im-server/releases)
- ChatServer:查看 [ChatServer Releases](https://github.com/openimsdk/chat/releases)
- OpenIMClientSDK:查看你实际使用的客户端 SDK 仓库 Releases 页面与对应 release note

| **类别** | **内容** |
| ------------ | --------------------------------------------------------------------------- |
| **功能优化** | 添加参数来定位消息与方向拉取消息,避免 UI 数据干扰。 |
| | 优化了消息获取逻辑 |
| **bug 修复** | 修复了当 chatlog 表名包含`-`时创建索引错误。 |
| | 修复了重装 APP 后,当前用户信息可能为空的问题。 |
| | 修复了当关键字为空时,搜索消息不会过滤语音消息。 |
| | 修复了当 APP 从后台打开或状态更新时,引用消息不会正确切换为撤销信息的错误。 |

## Chat v1.8.4 更新内容

| **类别** | **内容** |
| ------------ | ---------------------------------------------- |
| **新特性** | 实现了管理后台的配置中心对应功能。 |
| **功能优化** | 优化了与 kubernetes 适配与对应服务的镜像生成。 |
| | 优化了消息获取逻辑 |
| **bug 修复** | 修复了 grpc 在 windows 时的连接内存泄漏。 |
| | 修复了错误栈的打印问题。 |

---
如果你需要长期维护某个版本,请把所用 `tag` 明确记录在部署文档、构建脚本和回滚方案中。

# 版本兼容性
## 四、当前最新稳定版

| 模块 | 版本号 | 兼容版本 |
| ---------- | ------ | ---------------------------- |
| **SDK** | v3.8.3 | Server v3.8.3 |
| **Server** | v3.8.3 | SDK v3.8.2, SDK v3.8.3 |
| **Chat** | v1.8.4 | Server v3.8.2, Server v3.8.3 |
- **OpenIMServer** `v3.8.3-patch.12` `2025-10-24`
- [changelog](https://github.com/openimsdk/open-im-server/releases/tag/v3.8.3-patch.12)
- **ChatServer** `v1.8.4-patch.3` `2025-07-29`
- [changelog](https://github.com/openimsdk/chat/releases/tag/v1.8.4-patch.3)
Loading
Loading