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

默认
发表评论 2
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 大佬能解释下MobileIMSDK中QoS机制ack应答这块吗?
GlobalSendHelper#sendDataC2Cif(pFromClient.isQoS() && QoS4ReceiveDaemonC2S.getInstance().hasRecieved(pFromClient.getFp()))
{
    needDelegateACK = true;
}1、为什么我已经接受过消息,就可以直接ack了?2、正常 不是 情况一:MQ发送成功,情况二:Mq发送失败+离线存储成功才能ack吗?
3、为什么情况一和情况二成功了就能ack?,是因为保障了消息的可靠性投递和MQ手动ack消费吗?

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

上一篇:[已回复]【如题】群主大佬,您能说下学习您MobileIMSDK的顺序吗下一篇:[已解决] MobileIMSDK服务端打包后,报FileNotFoundException的问题

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

推荐方案
评论 2
QoS4ReceiveDaemonC2S.getInstance().hasRecieved(..)表示这条消息已经收到过了,现在再收到就是对方重复发送(应该是重传时),这种情况接收方这边当然就只需要直接返回ack应答了,因为已经收到过了没必要重复再处理一遍流程。而且这个判断也正是QoS机制中去重的一个手段。
签名: 不开心,不快乐
谢谢大佬回答
签名: 以坛为家002
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部