默认
发表评论 4
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求助关于IM中离线消息拉取时本地存储的msgID疑问
阅读(37570) | 评论(4 收藏 淘帖
[img]blob:http://www.52im.net/8bcc482c-37ff-41a8-875a-dd75ad13b56c[/img]我看了下你的离线消息拉取原理。。我发现app本地的msgID是递增的。。比如100条离线消息,msgID =1 ~ 100,最新的消息msgID越大,假如我们设定size=20 ,msgID=0 ,那则就加载  msgID=1 ~ msgID=20 , 此时app本地保存的msgID最大就是msgID=20,然后第二次就从 msgID=21~msgID=40, 这样轮询没有错,但是我们往往进入群聊则先加载 最后的那么20条(msgID=100 ~ msgID =81),第二次则加载(80~61),此时app本地保存的最大的msgID=61 ,假若此时群中有人发言,你当前打开的群收到了这消息(msgID=101),那app本地保存的msgID不是马上变更成了msgID=101了?    那之前还有 (60~1)这段的消息还是未读的?

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:IM 如何确定用户所在接入模块,正确推送消息?下一篇:集成RainbowChat到我的工程时报RMMapper重复定义的问题
推荐方案
评论 4
例如 你上次进这个页面最后的msgid=10 , 这次你进来共有6条新的(即11,12,13,14,15,16【最新的就是16】)。。一进来是就加载了msgid=16 , app本地保存最大的msgID=16了吧? 在不点“6条的新消息”按钮的前提下,我下拉想加载“15,14,13,12,11”,  但是我从你的“拉取离线消息一文”中,你是判断app中msgID最大的ID是什么, 然后提交给服务器查   (离线消息ID)> msgID 这样得出结果, 但是 msgID=16已经是最大了, 而未读的却比16还小  明显用  (离线消息ID)> msgID 是查不出结果呀?难道我理解错误了吗?
签名: 有志者事竟成
引用:JackJiang 发表于 2018-09-11 21:42
注意过微信或者手机QQ聊天界面里的这个“6条新消息”提示功能吗?
这个6条消息就相当于你说的“60~1”这60 ...

例如 你上次进这个页面最后的msgid=10 , 这次你进来共有6条新的(即11,12,13,14,15,16【最新的就是16】)。。一进来是就加载了msgid=16 , app本地保存最大的msgID=16了吧? 在不点“6条的新消息”按钮的前提下,我下拉想加载“15,14,13,12,11”,  但是我从你的“拉取离线消息一文”中,你是判断app中msgID最大的ID是什么, 然后提交给服务器查   (离线消息ID)> msgID 这样得出结果, 但是 msgID=16已经是最大了, 而未读的却比16还小  明显用  (离线消息ID)> msgID 是查不出结果呀?难道我理解错误了吗?
签名: 有志者事竟成
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部