本文由vivo互联网服务器团队Cai Linfeng分享,来自公众号“ vivo互联网技术”,原题“百万级群聊的设计实践”,即时通讯网进行了排版优化和内容修订。
cover-opti.png (11.91 KB, 下载次数: 3)
下载附件 保存到相册
26 天前 上传
1.png (19.15 KB, 下载次数: 2)
很常见的场景,展示用户对消息的已读未读状态,这个时候公共群信箱就无法满足要求,必须增加消息已读未读表来记录相关状态。还有用户对某条消息的删除状态,用户可以选择删除一条消息,但是其他人仍然可以看到它,此时也不适合在公共群信箱里拓展,也需要用到另一张关系表,总而言之针对消息做用户特定功能时就会比写扩散复杂。
2.png (17.16 KB, 下载次数: 3)
3.png (24.12 KB, 下载次数: 4)
4.png (14.05 KB, 下载次数: 4)
A发送了 msg1、msg2、msg3,B发送了 msg4、msg5、msg6,最终服务端的入库顺序是msg1、msg2、msg4、msg3、msg5、msg6,那除了A和B其他人的消息顺序需要按照入库顺序来展示,而这里的问题是服务端考量推送吞吐量,在推送环节是并发的,即可能 msg4 比 msg1 先推送到用户端上,如果按照推送顺序追加来展示,那么就与预期不符了,每个人看到的消息顺序都可能不一致,如果用户端按照消息的id大小进行比较插入的话,用户体验将会比较奇怪,突然会在2个消息中间出现一条消息。
5.png (5.2 KB, 下载次数: 3)
6.png (14.15 KB, 下载次数: 5)
7.png (11.5 KB, 下载次数: 4)
select count(1) from msg_info where groupId = 89 and id > 1022
8.png (11.06 KB, 下载次数: 4)
来源:即时通讯网 - 即时通讯开发者社区!
轻量级开源移动端即时通讯框架。
快速入门 / 性能 / 指南 / 提问
轻量级Web端即时通讯框架。
详细介绍 / 精编源码 / 手册教程
移动端实时音视频框架。
详细介绍 / 性能测试 / 安装体验
基于MobileIMSDK的移动IM系统。
详细介绍 / 产品截图 / 安装体验
一套产品级Web端IM系统。
详细介绍 / 产品截图 / 演示视频
引用此评论
引用:zhxh007 发表于 2025-03-12 19:40 如果用户有多个群,只建立一个连接,那么连接服务器,要管理这个用户所有群的信息吧,相当于 groupId,valu ...
引用:QQ_E12310 发表于 2025-03-14 04:30 这个设计有很大问题,商业化的IM不是这样的
精华主题数超过100个。
连续任职达2年以上的合格正式版主
为论区做出突出贡献的开发者、版主等。
Copyright © 2014-2024 即时通讯网 - 即时通讯开发者社区 / 版本 V4.4
苏州网际时代信息科技有限公司 (苏ICP备16005070号-1)
Processed in 0.127934 second(s), 41 queries , Gzip On.