美文网首页收藏
【Mars】Mars的长连接管理

【Mars】Mars的长连接管理

作者: Bogon | 来源:发表于2022-05-07 07:23 被阅读0次

Mars 是微信官方的跨平台跨业务的终端基础组件。

心跳是保持长连接的必需手段,MARS也提供了智能心跳的方案。

Mars对长连的管理有两个方面,一个是心跳(HeartBeat),一个是重连(Reconnect)。

这两个动作都是有策略性的。

一般心跳会间隔性的发出一个很小的心跳包,通过服务端返回来判断连接是否健康。

在网络断开时,会自动重连,一般遵循逐渐递增的方法,递增的策略有所不同。

在Mars中,对这两个策略有更精细化的管理,在Mars中对App运行的状态分了3种:

  1. 前台活动状态(forground-active),前台状态10分钟以上,可以认为是App正常运行状态;

  2. 后台活动状态(background-active),IOS切后台10分钟内为后台活动状态;

3 .后台非活动状态(inactive),IOS切到后台10分钟后状态为inactive。

这三种状态下心跳和重连的策略进行了调整,分类比较下:

HeartBeat

active: 以最小间隔发送心跳包,设定为3.5分钟

inactive:非活动状态: 每次递增20s,直到心跳最大间隔 10分钟

Reconnect:

forground-active:
前台状态大于等于10分钟,4分钟一次;
前台状态大于等于1分钟,小于10分钟,30s重连一次;
前台状态小于1分钟,15s重连一次;

background-active: 5分钟重连一次

inactive: 0s,60s,120s,240s,360s,480s,600s,600s...

image.png

参考

TCP 进阶
https://halfrost.com/advance_tcp

Tencent/mars
https://github.com/Tencent/mars#mars_cn

微信Mars策略分析
https://blog.dreamtobe.cn/mars/

Android弱网通信探究
https://blog.dreamtobe.cn/2016/08/16/android_weak_network/

智能心跳机制:解决网络的不确定性
https://time.geekbang.org/column/article/134231

相关文章

  • 【Mars】Mars的长连接管理

    Mars 是微信官方的跨平台跨业务的终端基础组件。 心跳是保持长连接的必需手段,MARS也提供了智能心跳的方案。 ...

  • Mars:加速数据科学的新方式

    本文分为4个部分: Mars的背景和现状 Mars解决了什么问题 Mars背后的哲学 总结与展望 一、Mars的背...

  • 1100 Mars Numbers (数学题)

    1100 Mars Numbers (20 分) People on Mars count their numbe...

  • Mars 应用与最佳实践

    本文主要从以下几个方面展开: Mars简介 典型场景 Demo 最佳实践 一、Mars简介 Mars是统一的数据科...

  • MaxCompute Mars开发指南

    Mars 算法实践 人脸识别 Mars 是一个基于矩阵的统一分布式计算框架 ,而且 Mars 已经在 GitHub...

  • 微信Mars使用说明

    github源码地址为https://github.com/Tencent/mars#mars_cn 使用前准备 ...

  • Mars老师学习线路

    Mars老师的

  • iOS 使用mars工程配置

    1、下载官方文件下载地址:https://github.com/Tencent/mars#mars_cn 2、按照...

  • Mars

    奶爸说看攻略,遂看之~ YOHO旗下主打年轻群体的旅行类产品。 — 讲故事 — 作为...

  • mars

    产品:mars 简介:yoho旗下,探寻城市好去处的PGC社区类app 好的点:1.启动页的视频动画特别有调性,非...

网友评论

    本文标题:【Mars】Mars的长连接管理

    本文链接:https://www.haomeiwen.com/subject/vszzyrtx.html