越来越多的客户把OpenIM用到了生产环境,由于新特性持续迭代和bug修复,会涉及到后续的升级方案,为了让大家后续从容应对,本文重点总结OpenIM对未来版本管理的思路和方案。同时,官网对于文档进行了全面更新,有部分端的文档需要在下周完成。
文档中心:https://doc.rentsoft.cn/#/
版本管理
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越来越健壮,开源价值也凸显出来了。
![image.png](https://static.golangjob.cn/220714/c0fcbd213fe13d43416f3e3aee9b505b.png)
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都具备即时通讯能力。
有疑问加站长微信联系(非本文作者))