微信官方终端基础组件的开发和检测能力的研究能力
发表时间:2023-09-14 19:01:27
文章来源:炫佑科技
浏览次数:207
菏泽炫佑科技
微信官方终端基础组件的开发和检测能力的研究能力
Mars是微信官方终端基础组件。 是用C语言编写的业务无关、平台无关的基础组件,目前已接入微信、iOS、Mac、WP等客户端。 主要包括以下几个部分: COMM:基础库,包括线程、消息队列、协程等基础工具; XLOG:通用日志模块,充分考虑移动终端的特点,提供高性能、高可用性、安全性、容错性。 日志功能; SDT:网络诊断模块; STN:信令传输网络模块(核心模块),负责终端与服务器之间的小数据信令通道。 包含了大量微信终端在移动网络上的优化经验和成果,并经过微信海量用户的测试。 火星首先源于微信的实际发展需求。 由于微信拥有多个平台和数亿用户微信官方终端基础组件的开发和检测能力的研究能力,微信基础功能的修改影响重大。 然而,不同平台上的不同实现使得在许多平台上统一变得困难。 一方面不利于质量控制,可能存在重大隐患。 另一方面也不利于微信深入基础研究。 因此,微信开始了跨平台基础组件的开发app开发,这些组件在微信中已经发展了很多年。 随着基础组件的发展和稳定,他们希望通过开源的力量进一步完善微信的基础,也期待行业内的相互交流和提升,所以他们启动了火星项目。 微信的网络层旨在覆盖许多不同的业务。 微信中使用的大部分功能都是基于Mars提供的网络组件,包括短信、语音消息、朋友圈等核心功能。
只有少数服务不在范围之内,例如VOIP等。微信中使用的网络服务一般分为两种:信令网络和数据网络。 STN负责信令网络,CDN组件负责数据网络。 但由于CDN涉及腾讯内部CDN服务,因此CDN部分并未纳入Mars的开源列表中。 SDT网络诊断模块提供了*基本的检测能力,需要用户自行组合使用。 各个平台的API所能反映的内容有限,无法处理复杂的网络诊断。 事实上,有一些旨在替换系统API的开源项目。 微信由于自身的特点,对网络诊断的要求较高,因此将其作为一个基础的跨平台组件进行开发和维护。 STN是微信的信令传输网络,也可以认为是一个小型的数据传输网络。 微信是日常生活中使用*频繁的网络渠道。 在开源设计方面,STN抽象了微信的使用模型,使STN成为独立于业务的网络通道,并已应用于包括微信在内的多个腾讯内部应用。 与 、 、 、 等框架不同,STN不仅是一个跨平台的网络解决方案框架,而且还着眼于“移动互联网”的特点。 结合移动互联网不稳定的特点,做了很多优化工作,并且这些优化已经被微信长期验证和使用。 此外,STN还包含很多其他实用的设计,包括定制DNS、容灾设计、负载考虑、APP前后端考虑、睡眠机制考虑、省电机制等。
STN比其他网络框架提供了更多的功能: 数据监控:STN提供了很多数据回调接口,允许应用程序根据这些网络数据建立统计分析、监控等工具来管理应用程序的实际网络状况; 问题定位: STN 包含很多关键日志,日志的设计帮助微信定位了很多网络层问题。 结合Mars提供的XLOG日志机制,应用程序可以在运行时打开日志,非常方便定位; 参数配置:STN将很多参数提取到配置中,以便应用程序可以根据自己的情况进行修改。 在网络通道方面,STN目前提供长连接和短连接两种通道,以满足不同的需求。 使用STN后,应用开发者只需专注于业务开发。 STN可以帮助您应对移动互联网的各种“陷阱”。标签:腾讯微信