请选择 进入手机版 | 继续访问电脑版

默认
发表评论 4
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教关于IM离线聊天消息同步策略的的一些疑惑
一般IM消息离线消息同步都是全量同步吗?像钉钉这样的 OA IM一般都是咋做的,有哪位大佬了解?

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

标签:求助 IM开发
上一篇:IM开发基础知识补课(六):数据库用NoSQL还是SQL?读这篇就够了!下一篇:适合新手:从零开发一个IM服务端(基于Netty,有完整源码)

本帖已收录至以下技术专辑

推荐方案
评论 4
http://www.52im.net/thread-594-1-1.html 这个帖子看过了,有些疑问
文中提到了 消息接收方一次拉取大量离线消息导致速度慢、卡顿的解决方法

假设有1000条离线消息,其中前100条是同一个会话中的,每次分页拉取也是100条,那么岂不是第一次拉下来的时候的消息全部是一个会话的,其他会话就不更新吗?
签名: 最后两天了 坚持住 你行的!
你的问题,可以这么回答。

1)正常情况下,一个典型的IM产品,离线聊天记录都应该设置一个保存时限,必竟聊天消息这种东西都是有时效性的,比如你朋友1个月前发给你的消息,你1个月后才看到,基本就没有意义了,因为真是重要信息的话,肯定不会等到你1个月后才在im里收录,他会第一时间电话或短信就联系上你了。

比如,微信的离线消息只保留72小时:
WX20190920-104340@2x.jpg

所以,不钻牛角尖的话,一个正常im,其实离线消息并没有那么多。

2)假设极端情况下,聊天记录的保存时限内,离线消息真有这么多,那就只能如你看到的《IM消息送达保证机制实现(二):保证离线消息的可靠投递》文章里说的分布拉取,这个分布不是说只拉取前100条,而是说每页100条,直到全部拉取完成,而且离线消息的拉取是在后台完成的,它边拉取,你同时还一样可以用app,所以对应用来说,只要体验处理得当,是无感的。
签名: 《马蜂窝旅游网的IM客户端架构演进和实践总结》:http://www.52im.net/thread-2796-1-1.html
引用:JackJiang 发表于 2019-09-30 12:08
你的问题,可以这么回答。

1)正常情况下,一个典型的IM产品,离线聊天记录都应该设置一个保存时限,必 ...

对于微信,qq这样的im可以这样,但是对于OA的IM,比如钉钉,任何一个客户端都能够看到所有消息,如果采用分页拉取的方式,应该会看到 会话列表页不断更新吧,在消息量很大的情况下。
签名: 最后两天了 坚持住 你行的!
引用:lee3164 发表于 2019-09-30 17:23
对于微信,qq这样的im可以这样,但是对于OA的IM,比如钉钉,任何一个客户端都能够看到所有消息,如果采用 ...

那是肯定的,但这又不影响体验,何况消息量大那只是极端情况,并不是常态
签名: 《马蜂窝旅游网的IM客户端架构演进和实践总结》:http://www.52im.net/thread-2796-1-1.html
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部