-

这套业内常用的「Notify/NewSync」机制却存在一些问题

当有新的红点产生时,后台同步提升 「finder sequence」 和 「wx sequence」,触发「Notify通道」,

如果「客户端长连接」还在,那么会及时去「收红点」,

若「长连不存在」,则会在重连时,借助「NewSync」告知用户下发红点。

但这会导致两个问题:「长连时」,因「调用和后台更新时序」不确定,可能会重复两次拉取,「Notify一次」,「New Sync」一次。

且这种方案依赖了「消息服务wx sequence」,如果同步不当,会对消息服务产生影响。

所以「客户端和后台」一起将红点sync接入了「可靠Notify」的方案,

后台提升「finder sequence」后,走到「可靠Notify」层级,

将「Nofity信令」以kv的形式存储在「墓碑」中,

如果客户端在线,则触发「finderSync」收红点时,同时返回ack告知mmProxy,然后后台再从墓碑中清理
Notify信令。

重连mmProxy首先「检索墓碑」,查看是否有未消费的Nofity。

可靠Notify约减少20%的红点请求量。