微信开源网路库mars使用流程分析: - Go语言中文社区

微信开源网路库mars使用流程分析:


分析了微信的mars demo https://github.com/Tencent/mars/tree/master/samples/iOS/iOSDemo/iOSDemo

mars短链接使用总结:

1. UIViewController使用mars接口收发包,实现UINotifyDelegate协议,交给NetworkEvent管理,作为事件的代理,获取回调

要使用mars的接口,只需要创建一个CGITask,调用NetworkService的 startTask接口就可以了

2. 调用了接口,还想需要 实现3个接口,才能作为代理,获得回包处理的回调

1)组包接口requestSendData

2)回包回调处理接口onPostDecode

3)onTaskEnd接口 处理任务结束需要做的刷新和存储

 

3. NetworkEvent作为NetworkService的代理,发包和收包是由NetworkService完成的

NetworkEvent作为代理通知到调用方,NetworkEvent可以自己实现和增强功能

4. 有三种delegate

1)NetworkDelegate 处理网络发包和回包的回调 由NetworkEvent实现

2)UINotifyDelegate 处理UI 需要 的回调 由自己的UIViewController实现

3)PushNotifyDelegate 处理服务器主动的push的回调 由自己的UIViewController实现 (startTask没有选项加入PushObserver的设置,

这块是在哪里加入的呢?我还没有研究到)

一个ViewController或者View可以同时实现UINotifyDelegate,PushNotifyDelagate。NetworkDelegate是由NetworkEvent实现的,

我们可以实现自己的NetworkEvent。

5. NetworkService实现了NetworkStatusDelegate协议,因此她可以接受到底层网络状态的通知,NetworkService的代理是NetworkEvent

因此网络数据的处理是由NetworkService和NetworkEvent来实现的,网络数据的事件分发是交给NetworkEvent。我们的UI,ViewController

都交给NetworkEvent进行管理

 

更多认知,感悟,成长干货,技术分享,请关注我的公众号「成为很厉害的人」。


 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/kingsleer/article/details/79430010
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-28 02:30:22
  • 阅读 ( 1400 )
  • 分类:Go开源项目

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢