默认
发表评论 6
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
请教一下IM客户端聊天记录空洞的问题
阅读(43982) | 评论(6 收藏 淘帖1
设备登陆的时候,会从服务端拉取最近七天的聊天记录,假如一个设备超过七天未登录,在第8天或者更后边登陆,只会拉取每个会话的最近7天消息,那对于客户端就缺失了中间的聊天记录,请问客户端怎么知道自己缺失了中间的聊天记录?或者说用户在下拉加载的时候,客户端以什么样的规则取判定有聊天记录的空洞?或者有什么别的方案请问大家

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

标签:求助 IM开发
上一篇:请教一下IM前端如何正确地处理用户昵称的更新显示下一篇:请教一下IM连接层该如何剔除失效的客户端连接,有什么好方案?

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

推荐方案
评论 6
每条消息生成连续递增id,客户端本地拉取校验消息连续性,如果不连续,从服务端主动拉取。
引用:doublesouth 发表于 2021-01-06 11:36
每条消息生成连续递增id,客户端本地拉取校验消息连续性,如果不连续,从服务端主动拉取。

说实话,严格递增有些难,或者每条消息都记录一下上一条消息的id?
一次性拉取7天消息不卡顿吗?每个会话拉取2页数据显示,服务器保留未拉取的数据,只要服务器存在未拉取的数据,就从服务器拉取,如果服务器么有,从本地拉取消息。
我觉得既然你们产品定义了超过7天的消息不加载,那你完全没有必要去纠结这个空洞的问题。

以微信为例,为什么微信只保存72小时内的消息,是因为im这种应用本身就是高频应用,连续超过这么久不打开的情况比较少。

换句话说,真的超过这么久不打开,那消息本身也就失去了时效性,聊天消息其实就是对应人的自然语言,就出去的话,对方7天还没收,那一定不是紧要的。
如果是紧要的,相信在消息发出后,对方没有反馈的情况下,一定有别的更及时的渠道去提醒他(比如打电话),否则不紧要的消息失去了时效性,再发给你的话,相信你也不想去看了,都过去多少天了,有啥意义了。。。。

我觉得很多时候做技术应该站在产品的角度考虑问题,不用死钻技术牛角尖,im这种应用尤其如此,因为跟人的习惯密切相关,并不只是纯技术范畴的事情
签名: 《能Ping通,TCP就一定能连接和通信吗?》http://www.52im.net/thread-4756-1-1.html
引用:JackJiang 发表于 2021-01-06 13:44
我觉得既然你们产品定义了超过7天的消息不加载,那你完全没有必要去纠结这个空洞的问题。

以微信为例, ...

如果在会话里,一直下拉可以直到拉取到所有消息,都可以拉取到本地
这个7天也好,或者把这个7天调整为3天,为了保持消息的连贯性,还是有必要加载,企业内部的不像微信一样
引用:手写的从前 发表于 2021-01-06 14:26
如果在会话里,一直下拉可以直到拉取到所有消息,都可以拉取到本地
这个7天也好,或者把这个7天调整为3 ...

那你就不需要定义超过几天怎样怎样,因为你啥也不怎么样,反正你全部是要永久保存
签名: 《能Ping通,TCP就一定能连接和通信吗?》http://www.52im.net/thread-4756-1-1.html
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部