默认
发表评论 4
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
注意过微信或者手机QQ聊天界面里的这个“6条新消息”提示功能吗?
这个6条消息就相当于你说的“60~1”这60条未读消息的情况。
(我聊天界面里没有截到图,所以用的是公告号界面的,原理是一样的)
求助关于IM中离线消息拉取时本地存储的msgID疑问_WechatIMG497.jpeg

你可以在手机qq或微信上测试体会一下这个功能,你平时尤其在群聊的时候,很久没打开的时候,再打开聊天界面时,就会出现这种情况,你点击这个“xx条新消息”按钮时,它会自动将你说的这“60-1”条消息加载进来给你们。不信你试着体验体验,应该能解决你的疑问。
评论 4
引用:ayuan9900 发表于 2018-09-12 10:57
例如 你上次进这个页面最后的msgid=10 , 这次你进来共有6条新的(即11,12,13,14,15,16【最新的就是1 ...

其实你不用纠结这些,真要像你说的这么干,客户端和服务端的逻辑就太复杂了。

比较实际的思路就是,实际上这些数据已经按最大msgId拉取到你的本地Sqllite中存储好了,提示你只是告诉你还未读,但数据早就在本地准备好了,只是UI界面对应的数据模型以及UI显示技巧而已(主要是为了提升体验)。

不管什么功能,如果涉及到的逻辑太复杂,那么一定会选择简单的方案,即使不是最优解,因为互联网分布式的情况下。简单的逻辑已经能让技术实现变的很复杂了,何况本身就很复杂的逻辑,那从整个架构来说,以后就是噩梦。

有的时候考虑问题,应该跳出当前思维,从上帝视解来看它,就能找到更实际可行的方案。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部