ET框架學習——消息系統之六

       本篇講解下NetworkComponent組件,框架在初始化的時候,掛載的是NetOuterComponent組件,該組件繼承自NetworkComponent組件,內部指定了使用了網絡協議爲TCP。

  • NetworkComponent

      Dictionary<long, Session> sessions字典,存放的是使用到的和Channel相關的Session對象。 另外還有IMessagePacker對象和IMessageDispatcher對象。IMessagePacker類用於對消息協議的包裝,是一個接口。IMessageDispatcher類是用於派發協議的接口。

       Awake方法會根據NetworkProtocol參數的不同,創建相應的AServer對象。NetOuterComponent組件有接通AwakeLoadUpdate事件,會調用到這裏的Awake方法,並且創建IMessagePacker對象和IMessageDispatcher對象。

      後面有一些方法都是圍繞sessions字典展開的,包括獲取,刪除(被刪除的Session對象會執行Dispose方法),添加(添加的Session對象會執行Start方法)。

      Update方法會執行Server的Update方法。 

  • 總結

     Session是屬於應用層  Channel是通信層(KCP,TCP,WEBSOCKET)。Channel斷了新建一個,Session不變就還是同一個客戶端。爲了實現斷線重連這種需求 一般都需要在通信層上封裝一套Session機制 以保存應用的一些連接信息。它門一般都會把Socket功能拆成2部分( 一個是Server 負責創建管理socket 一個是Channel也叫Peer 負責數據在多個Socket中的傳輸)。

    後面會先放一放ET,先去補一下unity的網絡開發,然後再來理一下ET部分的網絡,寫個總結篇。還是太菜了。。(手動大哭)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章