默认
打赏 发表评论 38
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议

@JackJiang
如果按msg_id或者时间戳拉取群聊离线消息,遇到以下这种情况怎么处理,求指导.
客户端在线分别收到msg_id为4,5,6的三条在线推送消息,客户端ACK时,msg_id为4和6的消息,ACK未被服务端收到;
客户端再次登录后,按msg_id拉取离线消息,只能拉取5和6,4必然丢失; 按时间戳也存在类似的问题,怎么办呢?
评论 38
引用:JackJiang 发表于 2019-09-23 13:08
你这说的好乱,你直接说,接收者已经在线收到了哪几条,离线了哪几条

@JackJiang

接收者在线收到了msg_id=4,5,6的这三条,  但msg_id=4和msg_id=6的ACK没有成功, 那msg_id=4的这条怎么离线拉取出来?
引用:JackJiang 发表于 2019-09-23 14:51
你是在担心:实际上4、6已被收到的情况下,如果服务端再存4、6离线的话,下次拉取就会存在4、6在接收者那 ...

@JackJiang   不是,我不担心4和6拉取重复; 我担心按msg_id > 5 拉取群离线消息,没有拉取到msg_id=4的这条消息
引用:JackJiang 发表于 2019-09-23 20:19
对于服务端来说,这种异常的ACK,应该有个容错的逻辑

@JackJiang    容错的逻辑能给个具体的思路吗? 另外,这个容错的机制是不是放在客户端判断比较好?
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部