下面是小编为大家整理的智游推送:推送心跳机制(完整),供大家参考。
智游推送心跳机制
在 socket 通信中, 心跳是为了判断当前连接是否有效, 可被使用。
如果可以及时的判断出当前连接已经失效了, 就可以快速的建立重连机制。
智游推送讲解推送的心跳机制在 Android 的世界里, google 推出的云推送服务,默认心跳是 28 分钟, 但这个放诸全球绝大部分地区行得通的规则, 到了 中国大陆,就出现了问题。
以中移动的 2. 5G 网络为例, 经过粗略测试, 大约 5 分钟左右的基带空闲, 连接就会被释放, 如果出现信令风暴的时候, 经过测试 30S 左右的基带空闲,连接就会被释放, 这也是为什么微信 Android 版本选择以‘5 分钟’ 为周期发送连接心跳。
其实不然, 5 分钟只是测试出来的一个平均值, 可能在 5 分钟就会频繁的掉线, 致使推送服务不能使用, 在失效的情况下, 通过心跳建立重连机制, 如果是对于消息的即时性要求不高的情况下, 5 分钟的心跳也是可以满足需求的。
如果是超过 10 分钟的心跳, 虽然可以达到省电的目的, 但是作为一个开发者来讲, 10 分钟的心跳会大大增加推送服务的不稳定性, 致使 10 分钟左右才可以建立重连的机制,大大的影响了用户的体验性。
对于心跳时间的把握, 不同的推送服务, 心跳周期基本是不同的。
相信有不少人,为了解决 2G/2. 5G 的信令风暴做出了很多的努力, 但是收效却甚微。
在这里我就谈谈智游推送的心跳机制。
首先, 选择心跳的周期, 大部分推送服务都是选择 5 分钟以上的心跳, 如果是信令风暴时期, 推送服务基本瘫痪, 我们的心跳周期并不是 5, 10 分钟, 而是一个动态的单心跳, 可以很好的预防信令风暴, 即使是信令风暴时期, 推送服务也可以使用。
其次, 智游推送还使用了双向心跳。
双向心跳不仅可以增加通道的活性, 同时也可以保证通道的连接状态是真实的, 不会出现假心跳的情况, 让推送服务更加的稳定,使消息可以快速的推送到客户端。
同时, 我们增加了一些策略去保证推送服务的稳定性, 比如说开屏, 我们会发送一个命令去检测连接是否失效, 如果是连接失效, 推送会立即执行重连机制, 保证推送服务的连接是可用的。
推送服务做到现在, 已经有不短的时间了, 推送服务的快速, 稳定以及流量, 电量的消耗都有很好的保障性
推荐访问:智游推送:推送心跳机制 推送 心跳 机制