Socket導學

一、爲什麼Socket難

數據粘包、數據丟包、心跳維持、性能問題

 

二、目的

一套推送框架、IM傳輸原理、勝任物聯網開發職位、協議制定者、理解其他相關庫的底層原理

 

三、目標與收穫

ByteBuffer               Channel    橋接技術  內存複用

                    NIO  

數據分片        Socket運用      性能分析

消息粘包          消息丟包      性能調試   併發封裝

 

四、課程安排

底層協議

UDP、TCP

NIO大家族

案例實戰:羣聊天室,文件快傳,即時語音等

 

五、底層協議

報文  協議  Mac地址

IP      端口   服務器

 

六、UDP、TCP、NIO

協議區別、性能比較、適用場景 

 

七、NIO --->NIO大家族

Selector

Channel (FileChannel、SocketChannel、ReadChannel)

Buffer (ByteBuffer、CharBuffer、IntBuffer)

 

八、羣聊天案例

多客戶端連接、UDP掃描功能、聊天消息轉發、向NIO的轉型、心跳包的實現、性能優化

 

九、文件傳輸案例

基於流的傳輸、文件發送中斷、消息分片技術、消息混發技術

 

十、即時語音

直播推流、語音採集、語音壓縮、接收與播放、實時消息模型

服務器橋接技術

 

十一、高性能的調度規則

利用多通道、線程池、多端寫入、併發消費的原理達到高性能的數據調度

 

十二、健壯的數據消費流程

將socket抽象爲Sender、Receiver

直接消費的數據爲IoArgs

要實現數據的消費,需要IoProvider,在IoProvider中實現WriteSelector和ReadSelector

WriteSelector和ReadSelector通過線程池進行調度

首先,將事件注入到IoProvider中,當數據就緒的時候,會通過線程池的callback實現對數據的消費

 

 

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