OpenIM重大优化-消息按需加载 一致性缓存 uniapp发布

简介: OpenIM重大优化-消息按需加载 一致性缓存 uniapp发布

新功能介绍
(1)服务端加入一致性缓存(dtm:https://www.dtm.pub/),优化db读写性能;

(2)对于群读扩散群,登录时先同步最新的100条消息,历史消息按需加载;

(3)申请进群时,群主或者管理员能看到进群方式以及由谁邀请进群;

(4)解散群,不能再发送消息;

(5)好友备注可删除,删除后恢复原来名称 ;

(6)群主和管理员能看到群成员的进群方式:扫码进群,谁邀请进群,搜索进群;

(7)群主和管理员设置群成员权限:是否允许查看其他群成员资料;是否允许添加群成员好友;

做技术的朋友对于读扩散写扩散应该不陌生,无论是信息流、论坛、信箱,还是私聊、群聊、通知,都能用到读写扩散。本文不讲解技术细节,OpenIM基于推拉结合的读扩散主要解决群聊模式下消息冗余存储,消息实时性,新用户入群无法查看新消息,超级大群等。

安卓端体验:https://www.pgyer.com/OpenIM

群聊读扩散-按需加载
(1)创建时指定工作群,这种群采用读扩散模型,每个群有独立seq,群成员共享此seq,能大幅减少群消息冗余,且提升消息实时性。

(2)消息按需加载机制做好铺垫,对于长时间不登录或者卸载后重装场景,默认加载最新的100条消息,对于历史消息,如果本地db不存在,则从服务端拉取。

(3)新用户入群可以查看历史消息,后续增加选择项,给开发者更多选择。

微信图片_20220723141157.jpg

uniapp版demo发布
uniapp,期待已久,demo已发布,可能还有一些瑕疵,请多多包涵。

请前往github下载使用:https://github.com/OpenIMSDK/Open-IM-Uniapp-Demo

项目成果
从服务端到客户端SDK开源即时通讯(IM)整体解决方案,可以轻松替代第三方IM云服务,并能根据业务需求高度自定义和二次开发,打造具备聊天、社交、办公功能的app。OpenIM继续领跑开源IM领域,在广大开发者的大力支持下,目前github star持续突破。越来越多的开发者把OpenIM应用在社交,协同办公领域。在运营过程中也暴露并修复了代码的一些bug,由于使用场景广泛,OpenIM越来越健壮,开源价值也凸显出来了。尤其对于政务系统来说,开源产品更有准入条件的优势。“开源”的价值在于能够打破资源垄断,让开发者 可以自我掌控。“开源”的价值在于能够提升软件质量,优化系统架构。“开源”的价值在于能够丰富文化内涵,共建工程师文化。

微信图片_202207231342435.jpg

开源不仅仅是开放源代码。作为开源IM领跑者,OpenIM开源有几个目的:(1)IM核心数据应该掌控在运营者手中(2)IM需求广泛,有很多人免费使用,并能发现问题(3)让更多开发者参与项目项目,特别是IM需求繁多。在开源社区里面,每个项目都可以开启pr,pr功能将允许每一位开发者对代码进行修改,但是需要项目拥有者的合并代码。集体的力量是最大的,充分体现开源的价值。OpenIM社区运营有所欠缺,未来计划直播讲解技术架构,让社区开发者能深度参与开发。

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

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

我们的团队
OpenIM是由IM技术专家打造开源即时通讯组件,目前github社区活跃,star近万,排名遥遥领先,开发者7000人,OpenM力争开源IM项目No1,打造开源IM第一社区。支持Android、iOS原生开发,支持Flutter、uni-app跨端开发,支持小程序、React等所有主流web前端技术框架, PC支持Electron。重点应用在政务办公,社交,web3场景,一切皆可控,让OpenIM深入到各行业。从开源的内在含义来看,需要这五个维度:透明度;协作;持续发布;精英制度;社区运营,OpenIM在这五方面还需要持续努力,稳固生态建设,巩固OpenIM影响力。开源的价值是开放使用,不限制想象及开发的空间,高效利用。每个开发者对于产品及技术的想象及出发不同,这就造就一个最基本的形态变成百花盛放,争奇斗艳的效果。

目录
相关文章
|
3月前
|
canal 缓存 NoSQL
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
|
1月前
|
缓存 监控 前端开发
在资源加载优化中,如何利用浏览器缓存提升性能?
通过以上这些方法,可以有效地利用浏览器缓存来提升资源加载的性能,减少网络请求次数,提高用户体验和应用的响应速度。同时,需要根据具体的应用场景和资源特点进行灵活调整和优化,以达到最佳的效果。此外,随着技术的不断发展和变化,还需要持续关注和学习新的缓存优化方法和策略。
93 53
|
1月前
|
缓存 监控 测试技术
如何利用浏览器的缓存来优化网站性能?
【10月更文挑战第23天】通过以上多种方法合理利用浏览器缓存,可以显著提高网站的性能,减少网络请求,加快资源加载速度,提升用户的访问体验。同时,要根据网站的具体情况和资源的特点,不断优化和调整缓存策略,以适应不断变化的业务需求和用户访问模式。
106 7
|
1月前
|
缓存 NoSQL 关系型数据库
mysql和缓存一致性问题
本文介绍了五种常见的MySQL与Redis数据同步方法:1. 双写一致性,2. 延迟双删策略,3. 订阅发布模式(使用消息队列),4. 基于事件的缓存更新,5. 缓存预热。每种方法的实现步骤、优缺点均有详细说明。
105 3
|
2月前
|
缓存 监控 算法
小米面试题:多级缓存一致性问题怎么解决
【10月更文挑战第23天】在现代分布式系统中,多级缓存架构因其能够显著提高系统性能和响应速度而被广泛应用。
78 3
|
2月前
|
消息中间件 缓存 中间件
缓存一致性问题,这么回答肯定没毛病!
缓存一致性问题,这么回答肯定没毛病!
|
3月前
|
缓存 JavaScript 中间件
优化Express.js应用程序性能:缓存策略、请求压缩和路由匹配
在开发Express.js应用时,采用合理的缓存策略、请求压缩及优化路由匹配可大幅提升性能。本文介绍如何利用`express.static`实现缓存、`compression`中间件压缩响应数据,并通过精确匹配、模块化路由及参数化路由提高路由处理效率,从而打造高效应用。
199 15
|
2月前
|
缓存 JavaScript 前端开发
Vue 3的事件监听缓存如何优化性能?
【10月更文挑战第5天】随着前端应用复杂度的增加,性能优化变得至关重要。Vue 3 通过引入事件监听缓存等新特性提升了应用性能。本文通过具体示例介绍这一特性,解释其工作原理及如何利用它优化性能。与 Vue 2 相比,Vue 3 可在首次渲染时注册事件监听器并在后续渲染时重用,避免重复注册导致的资源浪费和潜在内存泄漏问题。通过使用 `watchEffect` 或 `watch` 监听状态变化并更新监听器,进一步提升应用性能。事件监听缓存有助于减少浏览器负担,特别在大型应用中效果显著,使应用更加流畅和响应迅速。
104 1
|
2月前
|
存储 缓存 监控
HTTP:强缓存优化实践
HTTP强缓存是提升网站性能的关键技术之一。通过精心设计缓存策略,不仅可以显著减少网络延迟,还能降低服务器负载,提升用户体验。实施上述最佳实践,结合持续的监控与调整,能够确保缓存机制高效且稳定地服务于网站性能优化目标。
58 3
|
3月前
|
缓存 监控 负载均衡
在使用CDN时,如何配置缓存规则以优化性能
在使用CDN时,如何配置缓存规则以优化性能