微信开源网路库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进行管理

 

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

微信开源网路库mars使用流程分析:_第1张图片


 

你可能感兴趣的:(ios,随笔)