52im_qr_即时通讯技术圈_400px.png (17.47 KB, 下载次数: 2254)
下载附件 保存到相册
4 年前 上传
{ "cmd":"chat", "time":1554964794220, "uid":"69212694", "clientInfo":{ "deviceId":"b3b1519c-89ec", "deviceInfo":"MI 6X" }, "body":{ "v":1, "msgId":"5ab2fe83-59ec-44f0-8adc-abf26c1e1029", "chatType":1, "ackFlg":1, "from":"69212694", "to":"872472068", "time":1554964793813, "msg":{ "message":"聊天消息" } } }
1.png (5.97 KB, 下载次数: 2257)
int max = 100; //从新库读 while (max > 0) { List<OfflineMsgInfo> offlineMsgListNew = shardChatOfflineMsgDao.getByToUid(uid, 20); if (CollectionUtils.isEmpty(offlineMsgListNew)) { break; } handleOfflineMsg(uid, offlineMsgListNew, checkOnlineWhenSendingOfflineMsg); max--; }
{ "sessionId1":{ "count":20, "lastMsg":[ "最后N条消息" ], "timestamp":1234567890 }, "sessionId2":{ } }
2.png (6.29 KB, 下载次数: 2300)
4.png (28.03 KB, 下载次数: 2304)
5.png (49.88 KB, 下载次数: 2196)
6.png (120.61 KB, 下载次数: 2278)
7.png (71.24 KB, 下载次数: 2928)
8.png (75.9 KB, 下载次数: 2286)
9.png (57.33 KB, 下载次数: 2363)
来源:即时通讯网 - 即时通讯开发者社区!
轻量级开源移动端即时通讯框架。
快速入门 / 性能 / 指南 / 提问
轻量级Web端即时通讯框架。
详细介绍 / 精编源码 / 手册教程
移动端实时音视频框架。
详细介绍 / 性能测试 / 安装体验
基于MobileIMSDK的移动IM系统。
详细介绍 / 产品截图 / 安装体验
一套产品级Web端IM系统。
详细介绍 / 产品截图 / 演示视频
引用此评论
引用:d4ksn 发表于 2020-06-16 21:26 好文章啊!
引用:doublesouth 发表于 2020-07-07 20:21 离线消息表和缓存的一致性是如何保证的?
引用:JackJiang 发表于 2020-07-07 20:47 你可以问的具体一点
Snipaste_2020-07-09_16-57-24.jpg (18.95 KB, 下载次数: 2022)
引用:doublesouth 发表于 2020-07-09 16:57 消息先写入消息表,再在缓存中累加未读消息计数器,这两部的一致性是如何保证的?
引用:JackJiang 发表于 2020-07-09 22:10 这个一致性的保证,跟所有的需要持久化和内存缓存数据同步时遇到的问题是一样的,这个场景下,肯定是在写 ...
引用:doublesouth 发表于 2020-07-10 16:36 写缓存失败了就会存在存在缓存中未读数和数据库中不一致的问题,不过业务上只要保证消息不丢,偶尔出现未 ...
引用:zhxh007 发表于 2020-08-06 12:15 楼主的思路很好,但是小弟还有一事不明啊, 1.客户端在线,直接推送消息给客户端,可是客户端的在线状态是 ...
引用:JackJiang 发表于 2020-08-06 12:33 1、不要用推,还是要用拉简单,这是主流作法。 2、文中的意思是拉未读数的时候就取首屏。
引用:zhxh007 发表于 2020-09-10 22:53 1.拉的话是拉消息吧,未读数怎么计算呢, 2.还有就是如何判断是在线消息还是离线消息,因为在线状态不准 ...
引用:41C 发表于 2020-09-15 11:23 先赞再看
引用:GarageBand 发表于 2020-11-03 13:39 按图中所3,4条所述,如果客户端没拉完所有的离线消息,那么客户端会一直走请求,当再次进入会话中,客户端 ...
引用:JackJiang 发表于 2020-11-03 13:43 "如果客户端没拉完所有的离线消息,那么客户端会一直走请求": 这句怎么理解?用专业一点的话组织一下呢
引用:GarageBand 发表于 2020-11-03 13:50 比如有100条未读消息,我只看了20条(拉取20条),这个时候客户端数据库中的消息就会“断层”,然后我重 ...
引用:JackJiang 发表于 2020-11-03 13:55 他这个逻辑里,应该是会请求一次服务端,然后拉下所有离线消息,后绪直到退出app前,都以本地数据为准
精华主题数超过100个。
连续任职达2年以上的合格正式版主
为论区做出突出贡献的开发者、版主等。
在线时长累积7天(即7 * 8 = 56小时)。
持有金钱达到500。
Copyright © 2014-2024 即时通讯网 - 即时通讯开发者社区 / 版本 V4.4
苏州网际时代信息科技有限公司 (苏ICP备16005070号-1)
Processed in 0.125000 second(s), 42 queries , Gzip On.