Open evanwang1021 opened 9 years ago
解决方案: 针对某台设备的Mac,根据包SN的增序来过滤乱序的包,前提是sn一直保持增序。如果出现模块重启导致的sn归0,则针对sn<5(前面会有登录、心跳等包)的情况做特殊处理。 数据结构采用Map<String, Queue>,针对每个mac设备维护一个报文循环队列。只有比队首的sn大才能入队,或者是归0后的sn可入队,或者是队首达到超时时间(长时间收不到推送),任何sn都可入队。
解决方案: 针对某台设备的Mac,根据包SN的增序来过滤乱序的包,前提是sn一直保持增序。如果出现模块重启导致的sn归0,则针对sn<5(前面会有登录、心跳等包)的情况做特殊处理。 数据结构采用Map<String, Queue>,针对每个mac设备维护一个报文循环队列。只有比队首的sn大才能入队,或者是归0后的sn可入队,或者是队首达到超时时间(长时间收不到推送),任何sn都可入队。