QoS4ReciveDaemon Class Reference
Inherits from | NSObject |
---|---|
Declared in | QoS4ReciveDaemon.h |
Overview
QoS机制中提供对已收到包进行有限生命周期存储并提供重复性判断的守护线程。
原理是:当收到需QoS机制支持消息包时,会把它的唯一特征码(即指纹id)存放于本类的“已收到”消息队列中,寿命约为 MESSAGES_VALID_TIME 指明
的时间,每当 CHECH_INTERVAL 定时检查间隔到来时会对其存活期进行检查 ,超期将被移除,否则允许其继续存活。理论情况下,一个包的最大寿命不可能超过2
倍的 CHECH_INTERVAL 时长。
补充说明:“超期”即意味着对方要么已收到应答包(这是QoS机制正常情况下的表现)而无需再次重传、要么是已经达到QoS机制的重试极限而无可能再收
到重复包(那么在本类列表中该表也就没有必要再记录了)。总之,“超期”是队列中这些消息包的正常生命周期的终止,无需过多解读。
本类存在的意义在于:极端情况下QoS机制中存在因网络丢包导致应答包的丢失而触发重传机制从而导致消息重复,而本类将维护一个有限时间段内收到的所有 需要QoS支持的消息的指纹列表且提供“重复性”判断机制,从而保证应用层绝不会因为QoS的重传机制而导致重复收到消息的情况。
当前MobileIMSDK的QoS机制支持全部的C2C、C2S、S2C共3种消息交互场景下的消息送达质量保证.
Warning: 本线程的启停,目前属于MobileIMSDK算法的一部分,暂时无需也不建议由应用层自行调用。
@author Jack Jiang(http://www.52im.net/thread-2792-1-1.html)) @version 1.0