1. 程式人生 > >微信開源網路庫mars使用流程分析:

微信開源網路庫mars使用流程分析:

mars短連結使用總結:1. UIViewController使用mars介面收發包,實現UINotifyDelegate協議,交給NetworkEvent管理,作為事件的代理,獲取回撥要使用mars的介面,只需要建立一個CGITask,呼叫NetworkService的 startTask介面就可以了2. 呼叫了介面,還想需要 實現3個介面,才能作為代理,獲得回包處理的回撥1)組包介面requestSendData2)回包回撥處理介面onPostDecode3)onTaskEnd介面 處理任務結束需要做的重新整理和儲存3. NetworkEvent作為NetworkService的代理,發包和收包是由NetworkService完成的 NetworkEvent作為代理通知到呼叫方,NetworkEvent可以自己實現和增強功能4. 有三種delegate1)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進行管理