默认
发表评论 2
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 求教MobileIMSDK消息重传算法中QoS4ReciveDaemon功能的意义
请问下大家 从客户端角度 QoS4SendDaemon是消息发出去了 收到server的回包 再删掉 超时再重发 相当于保证消息发的。QoS4ReciveDaemon是干嘛的呢?
看代码是收到个Qos消息 就会保存fp。如果在10分钟内处理过了就忽略再收到的重复的消息。如果过了10分钟 重复收到 就会再次处理。这样做的意义是什么?

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

上一篇:[已回复] 求MobileIMSDK的交互数据结构文档或者资料下一篇:[已回复] 建议给MobileIMSDK搞个uniapp原生插件吧

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

推荐方案
评论 2
我大概想明白了。再次处理是为了防止Qos的响应消息对端没有收到 再发一下。间隔十分钟是为了排除消息延迟影响 减少包的发送频率。
引用:leirenbaobao 发表于 2022-11-04 11:05
我大概想明白了。再次处理是为了防止Qos的响应消息对端没有收到 再发一下。间隔十分钟是为了排除消息延迟影 ...

是的,QoS4ReciveDaemon的作用,就是为了防止发送端因重传,带来的消息重复发送的可能性。

另外,你说的“如果过了10分钟 重复收到 就会再次处理”,这在MobileIMSDK不会发生,因为根据MobileIMSDK的算法,超过重传次数和时间上限的包,会立即判定“无法送达”并通知应用层,不会长时间等待并重传,理论上不可能存在超过10分钟还有可能被重传出去的可能性
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部