越来越多的客户把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发布计划的更多相关文章

  1. Work Time Manager【开源项目】- 创建自己日志组件 2.0重构

    Hello all , 我又回来了 这次我们真是开始来聊聊开源项目里,小而有用的模块或者组件的开发思想. 同时,软件已经更新到1.60的版本了,支持新用户注册,可以不再使用统一的test账户了. 您可 ...

  2. 每周开源项目分享-年轻人的第一个OAuth2.0 Server:hydra

    年轻人的第一个OAuth2.0 Server:hydra hydra 是什么呢? OpenID Connect certified OAuth2 Server - cloud native, secu ...

  3. j2ee开源项目——IT学习者博客(itxxzblog v1.0)

    大家好,我是IT学习者-螃蟹,已经有近一周的时间没有更新文章了,作为回报,今天起将更新一个大件,也就是螃蟹还在进行中的IT学习者博客. IT学习者博客的初期设计已经完成,功能也已经完成了大半,具备了当 ...

  4. .Net 开源项目 FreeRedis 实现思路之 - Redis 6.0 客户端缓存技术

    写在开头 FreeRedis 是一款继 CSRedisCore 之后重写的 .NET redis 客户端开源组件,以 MIT 协议开源托管于 github,目前支持 .NET 5..NETCore 2 ...

  5. 如何基于IM即时通讯SDK从零开发仿微信聊天交友功能

    IM即时通讯技术的发展 IM即时通讯(Instant Messaging)是一种基于互联网的即时交流消息的业务. 实时聊天交互功能是市面上主流APP的重要功能之一,人们所熟悉的就是微信,QQ的聊天消息 ...

  6. 即时通讯(III)

    即时通讯的开源库 目前及时通讯可以使用环信.柔云.腾讯云,这些都是基于TCP连接的,UI也是高度定制的,而且它们的技术也是比较成熟的. XMPP比较早,是开源的,但是坑也比较多.传输的数据是XML,造 ...

  7. dotnet 是 前30个增长最快速度的开源项目中排名第一的开发平台

    CNCF 的博客 发了一篇文章 <Update on CNCF and Open Source Project Velocity 2020>,中文翻译参见 2020年CNCF和开源项目开发 ...

  8. Oschat IM 开源即时通讯项目介绍 - FengJ的个人页面 - 开源中国社区

    Oschat IM 开源即时通讯项目介绍 - FengJ的个人页面 - 开源中国社区 Oschat IM 开源即时通讯项目介绍    255人收藏此文章, 我要收藏 发表于5天前(2013-08-28 ...

  9. 个人开源作品,即时通讯App支持文本、语音、图片聊天

    开源一个即时通讯类App,支持纯文本.语音.地理位置.图片聊天,同时还加入了好友圈功能,支持分享动态和发送图片,支持搜索附近的人,使用的百度地图定位功能:由Bmob后端云提供服务器支持,欢迎喜欢的伙伴 ...

  10. ENTBOOST 2014.180L 发布,开源企业IM免费企业即时通讯

    ENTBOOST,VERSION 2014.180 Linux版本发布,主要增加企业IM应用集成功能,完善安卓SDK功能及部分BUG修正: 7/1(明天)发布Windows版本,敬请关注! ENTBO ...

随机推荐

  1. 可用性库存(CO09)排除库存地点增强

    1.业务需求 1.1.业务背景 1.2.对应方案: 2.测试BAPI 首先运行事务代码CO09,查看结果 运行BAPI_MATERIAL_AVAILABILITY 3.增强实现 3.1.增强思路 3. ...

  2. 获取标准报表CJI3的ALV数据

    1.CJI3 运行标准程序CJI3,获取对象和业务货币值,在其他程序中展示 2.代码展示 CJI3对应程序名rkpep003,最终展示的ALV结构可以再程序中找到. 因为本实例只获取其中两个字段的值, ...

  3. JSP常见错误以及解决方案

    原作者为 RioTian@cnblogs, 本作品采用 CC 4.0 BY 进行许可,转载请注明出处. 本节我们分析一下常见的 JSP 错误信息,并给出解决方案.这些错误在实际开发中会经常遇到,所以有 ...

  4. L2-020 功夫传人 (25分)

    分析: ⽤⼆维数 组v存储师⻔谱系关系,v[i]表示编号为i的师傅所拥有的徒弟,如果徒弟个数等于0, 也就是说这是个得道者,那么v[i][0]保存放⼤的倍数,⽽且⽤visit[i] = true标记当 ...

  5. vue-cli3.x中public和assets的区别

    今天开发了一个html5视频播放功能. vedio.mp4资源放在public文件夹下.那vue-cli3.x中public和assets的区别 vue-cli3.0有两个放置静态资源的目录分别是pu ...

  6. Spring AOP原来是这样实现的

    Spring AOP 技术实现原理 在Spring框架中,AOP(面向切面编程)是通过代理模式和反射机制来实现的.本文将详细介绍Spring AOP的技术实现原理,包括JDK动态代理和CGLIB代理的 ...

  7. java基础-IO流-day13

    目录 1. IO的概念 2. 一个一个字符 完成文件的复制 3. 字节流 4. 转换字节流 5. System.in 7.基本数据类型的数据 8. object的处理 1. IO的概念 计算机内存中的 ...

  8. docker 资源限制之 cgroup

    1. Liunx cgroup 使用 namespace 隔离运行环境,使得进程像在独立环境中运行一样.然而,仅有隔离环境还不够,还得限制被 namespace 隔离的资源.否则,namespace ...

  9. Java 子父类型集合之间的转换

    假设现在有这样一个方法,入参是父类型的集合参数,这是个通用方法,你需要共用它,你现在要传子类型集合进去,怎么办? class Animal { } class Dog extends Animal { ...

  10. Laravel路由匹配

    Route常规用法如下,特别是最后一个传参之后可以进行正则匹配,非常好用. //@后面内容为所要访问的方法 Route::get('foo', 'Photos\AdminController@meth ...