Mars 简介
优质
小牛编辑
133浏览
2023-12-01
Mars 是什么
Mars 是微信官方的终端基础组件, 是一个业务性无关,平台性无关 使用C++ 编写的基础组件。目前已接入微信 Android、iOS、Mac、Windows、WP、UWP 等客户端。注意:目前仅支持Android、iOS、Mac、Windows 平台,其他平台会在后续的版本中很快支持
它主要包括以下几个部分:
- Comm:基础库,包括socket、线程、消息队列、协程等基础工具;
- Xlog:通用日志模块,充分考虑移动终端的特点,提供高性能、高可用、安全性、容错性的日志功能
- SDT:网络诊断模块;
- STN:信令传输网络模块,负责终端与服务器的小数据信令通道。包含了微信终端在移动网络上的大量优化经验与成果,经历了微信海量用户的考验。
为什么使用 Mars
Mars | AFNetworking | OkHttp | |
---|---|---|---|
跨平台 | yes | no | no |
实现语言 | C++ | Objective-C | Java |
具体实现 | 基于 socket | 基于 HTTP | 基于 HTTP |
支持完整的 HTTP | no | yes | yes |
支持长连 | yes | no | no |
DNS 扩展 | yes | no | yes |
结合移动 App做设计 | yes | no | no |
总的来说
- Mars 中包括一个完整的高性能的日志组件 xlog;
- Mars 中 STN 是一个跨平台的 socket 层解决方案,并不支持完整的 HTTP 协议;
- Mars 中 STN 模块是更加贴合“移动互联网”、“移动平台”特性的网络解决方案,尤其针对弱网络、平台特性等有很多的相关优化策略。
Mars 是一个结合移动 App 所设计的基于 socket 层的解决方案,在网络调优方面有更好的可控性,不过对于 HTTP 完整协议的支持,已经考虑后续版本会加入。Mars在微信用的应用场景主要是:普通CGI请求类似收发消息收发语音,业务CGI支付请求等。
如果你想一次学习,多个平台使用,Mars 是一个比较好的选择,如果你面对的用户是移动网络下的用户,Mars 更是一个比较好的选择。但如果你只是想使用完整的 HTTP 协议,Mars暂时可能不适合你。如果你的应用中存在大量发送大数据的场景,Mars也不是一个好的选择,不建议使用。