默认
发表评论 6
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
各位对新装IM登录时有大量联系人(比如1W以上)的情况怎么处理的
阅读(51294) | 评论(6 收藏 淘帖
1金币
请问各位大神,你们im场景中拉取联系人是怎么做的,如果有大用户有上万个联系人是怎么处理的?欢迎大家来讨论方案。

上一篇:求助关于Mina框架文件传输时服务端解析数据出错的问题下一篇:悬赏求教Java的NIO和IO的本质区别
推荐方案
评论 6
首先:1万个联系人是夸张了点。程序员通常都是还没开始写代码,先被自已的想象力给吓死了。。。

不过,以下两篇文章是为你准备的,值得细读:
《谈谈移动端 IM 开发中登录请求的优化》:http://www.52im.net/thread-282-1-1.html

另外,离线消息的拉取可能也会存在你考虑的问题,文章我提前为你准备好了:
《IM消息送达保证机制实现(二):保证离线消息的可靠投递》http://www.52im.net/thread-594-1-1.html
我们是电商产品,现在线上的大卖家的联系人就是好几万
签名: 哈哈哈哈
引用:anbian 发表于 2017-02-13 17:18
我们是电商产品,现在线上的大卖家的联系人就是好几万

原来如此,先看我给你的文章是否有帮助,还有疑问就继续跟贴讨论。
目前讨论了一个技术方案,从产品角度对联系人上线做个限制,比如最多展示5000个,实际上目前如果联系人最多展示2000到3000的话,直接全量拉取也不会有问题,客户端卡顿也不太明显,使用体验上可以接受,如果限制个数1W以上的话,一个策略是先拉取联系人的id,由于数据量小,客户端处理还是挺快的,之后再拿着id分页慢慢进行拉取,这就简化了一次拉取所有联系人信息客户端处理不过来的问题。
签名: 哈哈哈哈
引用:anbian 发表于 2017-02-14 10:02
目前讨论了一个技术方案,从产品角度对联系人上线做个限制,比如最多展示5000个,实际上目前如果联系人最多 ...

登陆后异步增量拉取是完全可以的,微信不就是这样吗:每次卸载微信后,重新安装后你观察下微信的加载过程,只是此次新装之后微信的每次启动都是按时间戳等策略进行增量更新而已。
也就是说,只是每次重新安装或第一次安装使用时慢一点而已,这从用户体验上来说是可以接受的:对户而言,你可以告诉它现在正在初始化什么的,完全说的过去。
是的,微信的最近联系人实际上是多终端不同步的,不过他们有联系人列表,有好友关系能够查询,对于电商产品没有好友关系,没有联系人列表,只有最近联系人列表,这就从产品上要求我换了设备我的最近联系人也要同步过来,如果有好友关系或者联系人关系这个就好做一些。后台增量拉取也可能会有问题,如果用户在还没拉取完的时候杀进程,这个联系人矛点就会出问题,并且联系人是按照最后一条消息倒序排序的,分页场景联系人顺序会随着收发消息不断变化。
签名: 哈哈哈哈
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部