# 重要-即时通讯IM开源项目OpenIM关于版本管理及v2.3.0发布计划
越来越多的客户把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越来越健壮,开源价值也凸显出来了。
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都具备即时通讯能力。
# 重要-即时通讯IM开源项目OpenIM关于版本管理及v2.3.0发布计划的更多相关文章
- Work Time Manager【开源项目】- 创建自己日志组件 2.0重构
Hello all , 我又回来了 这次我们真是开始来聊聊开源项目里,小而有用的模块或者组件的开发思想. 同时,软件已经更新到1.60的版本了,支持新用户注册,可以不再使用统一的test账户了. 您可 ...
- 每周开源项目分享-年轻人的第一个OAuth2.0 Server:hydra
年轻人的第一个OAuth2.0 Server:hydra hydra 是什么呢? OpenID Connect certified OAuth2 Server - cloud native, secu ...
- j2ee开源项目——IT学习者博客(itxxzblog v1.0)
大家好,我是IT学习者-螃蟹,已经有近一周的时间没有更新文章了,作为回报,今天起将更新一个大件,也就是螃蟹还在进行中的IT学习者博客. IT学习者博客的初期设计已经完成,功能也已经完成了大半,具备了当 ...
- .Net 开源项目 FreeRedis 实现思路之 - Redis 6.0 客户端缓存技术
写在开头 FreeRedis 是一款继 CSRedisCore 之后重写的 .NET redis 客户端开源组件,以 MIT 协议开源托管于 github,目前支持 .NET 5..NETCore 2 ...
- 如何基于IM即时通讯SDK从零开发仿微信聊天交友功能
IM即时通讯技术的发展 IM即时通讯(Instant Messaging)是一种基于互联网的即时交流消息的业务. 实时聊天交互功能是市面上主流APP的重要功能之一,人们所熟悉的就是微信,QQ的聊天消息 ...
- 即时通讯(III)
即时通讯的开源库 目前及时通讯可以使用环信.柔云.腾讯云,这些都是基于TCP连接的,UI也是高度定制的,而且它们的技术也是比较成熟的. XMPP比较早,是开源的,但是坑也比较多.传输的数据是XML,造 ...
- dotnet 是 前30个增长最快速度的开源项目中排名第一的开发平台
CNCF 的博客 发了一篇文章 <Update on CNCF and Open Source Project Velocity 2020>,中文翻译参见 2020年CNCF和开源项目开发 ...
- Oschat IM 开源即时通讯项目介绍 - FengJ的个人页面 - 开源中国社区
Oschat IM 开源即时通讯项目介绍 - FengJ的个人页面 - 开源中国社区 Oschat IM 开源即时通讯项目介绍 255人收藏此文章, 我要收藏 发表于5天前(2013-08-28 ...
- 个人开源作品,即时通讯App支持文本、语音、图片聊天
开源一个即时通讯类App,支持纯文本.语音.地理位置.图片聊天,同时还加入了好友圈功能,支持分享动态和发送图片,支持搜索附近的人,使用的百度地图定位功能:由Bmob后端云提供服务器支持,欢迎喜欢的伙伴 ...
- ENTBOOST 2014.180L 发布,开源企业IM免费企业即时通讯
ENTBOOST,VERSION 2014.180 Linux版本发布,主要增加企业IM应用集成功能,完善安卓SDK功能及部分BUG修正: 7/1(明天)发布Windows版本,敬请关注! ENTBO ...
随机推荐
- 【scikit-learn基础】--『监督学习』之 层次聚类
层次聚类算法是机器学习中常用的一种无监督学习算法,它用于将数据分为多个类别或层次.该方法在计算机科学.生物学.社会学等多个领域都有广泛应用. 层次聚类算法的历史可以追溯到上世纪60年代,当时它主要被用 ...
- Docker 安装 kafka
简单安装为了集成 SpringBoot,真实使用,增加增加更多配置,比如将log映射出来 1.安装 zookeeper [root@centos-linux ~]# docker pull wurst ...
- No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc ...
- 【主流技术】聊一聊 Redis 的基本结构和简单应用(一)
目录 前言 一.String 类型 二.List 类型 三.Hash 类型 四.Set 结构 五.Sort Set (Zset)结构 六.文章小结 前言 Redis 是目前互联网后端的热门中间件之一, ...
- Codeforce:131A. cAPS lOCK
原题链接 ╮(╯▽╰)╭这题题目一开始没看明白,导致wa几次.如果全是大写或者出了首字母是小写其他为大写,则转换为第一个字母大写,其他的小写 ,如果不是以上两种情况则不作处理. ╮(╯▽╰)╭水题还错 ...
- 0x02 基本算法-枚举、模拟、递推
递归实现指数型枚举 int _, n, m, k, x, y; vector<int> vec; void calc(int x) { if (x == n + 1) { for (int ...
- 推荐收藏!年度Top20开源许可证风险等级
开源许可现状 开发人员经常在软件中引入开源的代码片段.函数.方法和操作代码.因此,软件代码中经常会包含各种声明不同许可证的子组件.这些子组件的许可证条款和条件与项目整体主许可证的条款和条件冲突时,就会 ...
- mybatisplus 查询结果排除某字段实现
数据有Test表,表里有id,name,ip_address,last_time四个字段 通常查询写法,返回结果会把id,name,ip_address,last_time四个字段都返回 public ...
- mybatis-plus Date类型的参数 只有年月日 没有时分秒的解决办法
问题: 使用mybatis-plus 设计实体的时候 使用 Date inTime; 数据库里的时间2021-11-05 22:00:13 但java里的时间变成了2021-11-05 00: ...
- sipp3.6分支压测方案
概述 SIP压测工具sipp,免费,开源,功能足够强大,配置灵活,优点多. 本文档介绍sipp工具的常用参数和测试脚本. 环境 centos7.9 sipp v3.6.2_rc1 常用参数 -sf 加 ...