欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

# 关于版本管理和 v2.3.0 发布计划的重要即时通讯 IM 开源项目 OpenIM

最编程 2024-06-08 21:22:47
...

越来越多的客户把OpenIM用到了生产环境,由于新特性持续迭代和bug修复,会涉及到后续的升级方案,为了让大家后续从容应对,本文重点总结OpenIM对未来版本管理的思路和方案。同时,官网对于文档进行了全面更新,有部分端的文档需要在下周完成。


## 版本管理

OpenIM版本管理较为复杂,涉及到服务端版本,以及多端SDK版本。由于OpenIM的SDK底层使用golang实现,所以aar/framework和go core SDK(Open-IM-SDK-Core https://github.com/OpenIMSDK/Open-IM-SDK-Core) 版本保持一致。而插件层会修复自身bug从而带来版本号的变化,所以插件也有自身的版本号。服务端和客户端SDK只需要大版本(版本号第一位数字)保持一致即可。

用例子说明版本号管理

(1)比如go core SDK是2.0.1 (稳定版)

(2)aar包2.0.1  aar和go core SDK版本保持一致;

(3)flutter2.0.1+a  前面三位数保存一致, a b c 是修复自身bug后的版本号

(4)app 自身版本独立,如2.11.2,  但需要在app里面增加一项,表示使用了SDK版本号为2.0.1+a

| go sdk版本(github  Open-IM-SDK-Core tag) | aar/framework版本 | Flutter sdk版本            | iOS sdk 版本              | Android sdk 版本          | js sdk 版本                    | uniapp 版本        | app/pc版本                                          |

| ------------------------------------------ | ----------------- | -------------------------- | ------------------------- | ------------------------- | ------------------------------ | ------------------- | --------------------------------------------------- |

| 2.0.1                                      | 2.0.1            | 2.0.1+1 前面和core保持不变 | 2.0.1.1 前面2.0.1保持不变 | 2.0.1.1 前面2.0.1保持不变 | 2.1.0-beta.1前面和core保持一致 | 2.0.1和core保持一致 | 应用版本可以完全独立,但需要展使用sdk详细版本信息。 |

版本发布过程2.0.1-rc0 =》2.0.1-rc1 =》 2.0.1(稳定版)

## 项目成果

从服务端到客户端SDK开源即时通讯(IM)整体解决方案,可以轻松替代第三方IM云服务,并能根据业务需求高度自定义和二次开发,打造具备聊天、社交、办公功能的app。

OpenIM继续领跑开源IM领域,在广大开发者的大力支持下,目前github star持续突破。越来越多的开发者把OpenIM应用在社交,协同办公领域。在运营过程中也暴露并修复了代码的一些bug,由于使用场景广泛,OpenIM越来越健壮,开源价值也凸显出来了。


github地址: https://github.com/OpenIMSDK/Open-IM-Server

开发者中心:https://doc.rentsoft.cn/#/

## V2.2.0稳定版

V2.2.0稳定版发布时间:2022年7月1日

### 平台支持

以下平台都支持消息互通,SDK和服务端代码100%开源,采用Apache-2.0 License协议,任何团队和个人都可以免费商用。demo主要展示SDK如何使用。商业版是OpenIM团队在开源的服务端和SDK基础上,开发带有UI功能完整的IM产品

| 平台    | SDK 及兼容性            | 源码    | Demo    | 商业版              |

| -------- | ------------------------ | -------- | -------- | -------------------- |

| Android  | 兼容android5.0及以上版本 | 100%开源 | 100%开源 | 有,针对付费客户开放 |

| iOS      | 兼容iOS 11.0及以上版本  | 100%开源 | 100%开源 | 有,针对付费客户开放 |

| Flutter  | 兼容flutter2.0及以上版本 | 100%开源 | 100%开源 | 有,针对付费客户开放 |

| Uniapp  |                          | 100%开源 | 100%开源 | 有,针对付费客户开放 |

| Electron |                          | 100%开源 | 100%开源 | 有,针对付费客户开放 |

| 小程序  |                          | 100%开源 | 100%开源 | 无                  |

| Web      |                          | 100%开源 | 100%开源 | 有,针对付费客户开放 |

| Linux    |                          | 100%开源 | 100%开源 | 无                  |

### 帐号功能

| 功能        | 说明                                |

| ------------ | ------------------------------------ |

| 帐号禁用    | 设置Token踢出状态,强制用户踢出      |

| 帐号导入    | 把用户导入OpenIM                    |

| 用户在线状态 | 查询用户是否在线,以及具体哪些端在线 |

| 查询帐号    | 查询帐号是否导入                    |

### 多端登录

| 功能      | 说明                                                        |

| ---------- | ------------------------------------------------------------ |

| 单平台登录 | Android、iPhone、iPad、Windows、Mac 只能1端在线;Web 可10端同时在线 |

### 消息类型

| 功能        | 说明                                                        |

| ------------ | ------------------------------------------------------------ |

| 文本消息    | 消息内容是普通文本                                          |

| 图片消息    | 消息内容为图片 URL 地址、尺寸、图片大小等信息                |

| 表情消息    | 表情消息为开发者自定义                                      |

| 语音消息    | 语音数据需要提供时长信息,以秒为单位                        |

| 地理位置消息 | 消息内容为地理位置标题、经度、纬度信息                      |

| 文件消息    | 消息内容为文件的 URL 地址、大小、格式等信息,格式不限,不限制大小。 |

| 短视频消息  | 消息内容为视频文件的 URL 地址、时长、大小、格式等信息,不限制大小。 |

| 自定义消息  | 开发者自定义的消息类型,例如红包等形式的消息                |

| 系统通知消息 | 包含内置的系统通知消息和开发者自定义系统通知消息            |

| Tips 消息    | 包括群、好友、用户信息修改等Tips                            |

| 合并消息    | 最大支持10条消息合并                                        |

| 清空所有消息 | 清除个人的本地和服务端消息                                  |

| 图片视频文件 | 支持MinIO,cos,oss上传                                      |

### 会话功能

| 功能          | 说明                                      |

| -------------- | ------------------------------------------ |

| 删除会话      | 支持删除本地;支持删除本地,同时删除服务端 |

| 设置会话免打扰 | 设置会话免打扰,单聊 群聊                  |

| 置顶会话      | 置顶/取消置顶                              |

### 设置功能

| 功能          | 说明                      |

| -------------- | -------------------------- |

| 设置全局免打扰 | 设置后能收到消息,但不提醒 |

### 消息功能

| 功能        | 说明                                                        |

| :----------- | :----------------------------------------------------------- |

| 离线消息    | 用户登录后退到后台,当有用户给其发消息时,即时通信 IM 支持离线推送 |

| 漫游消息    | 在新设备登录时,将服务器记录(云端)的历史消息存储进行同步,默认为全量同步。 |

| 多端同步    | 多终端消息同步,可同时收到消息                              |

| 历史消息    | 支持本地历史消息和云端历史消息                              |

| 消息撤回    | 撤回投递成功的消息,撤回时间由UI自己控制                    |

| 已读回执    | 查看单聊/群聊会话中对方的已读未读状态,对于群聊可以查看哪些人已读/未读 |

| 消息转发    | 将消息转发给其他用户或群组                                  |

| @功能        | 群内 @ 消息与普通消息没有本质区别,仅是在被 @ 的人在收到消息时,需要在 UI 上做特殊处理 |

| 正在输入    | 支持                                                        |

| 离线推送    | 目前整合了个推、极光推送                                    |

| 消息删除    | 支持仅删除本地,或者同时删除本地和服务端                    |

| 消息回复    | 支持对消息进行回复                                          |

| 本地消息搜索 | 支持搜索好友,搜索群组、群成员;搜索消息,按照会话分组      |

### 阅后即焚

| 功能        | 说明                                                        |

| ------------ | ------------------------------------------------------------ |

| 私聊阅后即焚 | 在私聊时,双方都可以开启或者关闭阅后即焚状态,在阅后即焚开启后,对方已读后,可以开启30秒倒计时,双方删除 |

### 用户功能

| 功能                    | 说明                                                |

| :----------------------- | :--------------------------------------------------- |

| 设置用户资料            | 用户设置自己的昵称、头像、性别、年龄等资料          |

| 获取用户资料            | 用户查看自己、好友及陌生人资料                      |

| 当前登录用户资料变更回调 | 通过监听回调,及时刷新UI界面                        |

| 自定义用户资料          | 设置ex字段                                          |

| 用户通知监听回调        | 登录用户信息修改,连接成功/失败,token过期,被踢下线 |

### 关系链功能

| 功能                        | 说明                                            |

| :--------------------------- | :----------------------------------------------- |

| 查找好友                    | 可通过用户帐号 ID 查找好友                      |

| 申请添加好友                | 申请添加好友,需对方同意                        |

| 导入好友                    | 支持导入双向好友关系                            |

| 删除好友                    | 成为好友后可以删除好友                          |

| 获取所有好友                | 获取所有好友                                    |

| 同意/拒绝好友                | 收到请求加好友请求的系统通知后,可以通过或者拒绝 |

| 添加用户到黑名单            | 把任意用户拉黑,如果此前是好友关系,仍然保留    |

| 移除黑名单                  | 把用户从黑名单中移除                            |

| 获取黑名单列表              | 拉取用户黑名单列表                              |

| 好友备注                    | 成为好友后可以给好友备注                        |

| 校验好友                    | 支持校验单向好友关系                            |

| 校验黑名单                  | 支持校验单向黑名单                              |

| 获取收到的的好友申请列表    | 被添加的好友申请列表                            |

| 获取主动发出去的好友申请列表 | 主动申请添加其他人为好友的申请列表              |

| 好友通知监听回调            | 包括好友申请,好友列表变更,好友资料变更;      |

| 黑名单通知监听回调          | 用户黑名单列表变更                              |

### 群组功能

目前群组采用写扩散模型,会导致消息复制多份,同时不支持新成员查看进群前的历史消息。

| 功能                | 说明                                                        |

| -------------------- | ------------------------------------------------------------ |

| 群容量              | 人数无上限,建议控制在一万人以内                            |

| 创建群              | 任何人可以创建群                                            |

| 群资料属性          | 群名,群头像,群简介,群公告,群扩展字段                    |

| 进群模式            | 群成员邀请直接入群;所有人直接进群;所有人都需要验证;群主和管理员验证通过 |

| 获取收到的群申请列表 | 群主管理员可以查看其他用户的入群申请                        |

| 获取发出的群申请列表 | 查看本用户入群申请列表                                      |

| 获取群成员列表      | 拉取群成员信息,支持分页拉取                                |

| 群主转让            | 现有群主转让群主身份给群成员                                |

| 群成员类型          | 群主、管理员、普通成员                                      |

| 管理员设置          | 群主可以增减管理员                                          |

| 群组资料修改权限    | 群主、管理员可修改:群名,群头像,群简介,群公告,群扩展字段 |

| 修改群成员昵称      | 群主可以修改所有人的群昵称。 管理员只能修改普通群成员的群昵称。 |

| 修改自己的群昵称    | 群成员修改群内昵称,群昵称默认为用户昵称                    |

| 消息类型支持        | 同消息类型                                                  |

| 消息提醒            | 接收消息但不提示;屏蔽群消息                                |

| 历史消息            | 支持                                                        |

| 离线消息            | 支持                                                        |

| 消息漫游            | 支持                                                        |

| 指定成员强制推送@    | 群内 @ 消息与普通消息没有本质区别,仅是在被 @ 的人在收到消息时,需要在 UI 上做特殊处理 |

| 群消息已读回执      | 支持,后台可以配置是否启用,群消息哪些人已读未读            |

| 踢人                | 群主和管理员可以踢人,且管理员不能踢群主和其他管理员        |

| 主动退群            | 除群主外,其他用户均可以主动退群。 群主需先将群转让给其他群成员才可以进行退群操作 |

| 禁言                | 群主管理员对普通成员禁言、解除禁言                          |

| 转让群              | 群主可以将群的拥有者权限转给群内的其他成员,转移后, 被转让者变为新的群主,原群主变为普通成员。 |

| 解散群              | 群主管理员可以解散群                                        |

| 群通知监听回调      | 包括群信息修改,群成员变更,个人进群列表变更,以及群申请通知。 |

## v2.3.0重要特性

预计v2.3.0-rc0发布时间为2022年7月20日

| 版本特性                                      | 预计发布时间 |

| ---------------------------------------------- | ------------ |

| 群聊写扩散增加读扩散机制,解决消息存储冗余问题 | 2022-7-20    |

| 优先同步群聊最新消息,按需拉取历史消息        | 2022-7-20    |

| 服务端加入一致性缓存,优化db读写性能          | 2022-7-20    |

| 支持单群百万级超级大群                        | 2022-7-20    |

| 支持新入群用户查看历史消息                    | 2022-7-20    |

## 我们的团队

有部分读者总在质疑现在乐此不疲做聊天 app还有什么价值?这里统一回答一下,OpenIM不是一个独立的聊天工具,是IM统一解决方案,OpenIM用开源技术创造服务价值,打造轻量级、高可用的IM架构,开发者只需简单调用 SDK,即可在应用内构建多种即时通讯及实时音视频互动场景,打造社交,还是电商客服,或者游戏互动等场景。相比于其他云服务商,OpenIM有其优势:开源,安全,可靠,低成本。对于信息安全重视的电子政务,企业协同办公,OpenIM都是非常好的选择。从公司成立之初就将“开源”作为核心战略来推进,以公司化运营打造开源IM,充分体现了*、平等、分享的互联网精神。OpenIM邀请全球技术极客来参与OpenIM建设,使每位开发者都能免费使用最优秀的IM组件,让每个app都具备即时通讯能力。