跟閃電俠學 Netty:Netty 即時聊天實戰與底層原理

跟閃電俠學 Netty:Netty 即時聊天實戰與底層原理

作者: 俞超
出版社: 電子工業
出版在: 2022-02-01
ISBN-13: 9787121426797
ISBN-10: 712142679X
總頁數: 344 頁





內容描述


這是一本專門為Netty初學者打造的入門及進階學習圖書,無論你之前有沒有使用過Netty,都可以從本書中有所收獲。 本書分上下兩篇。上篇通過一個即時聊天系統的實戰案例,讓讀者能夠系統地使用一遍Netty,全面掌握Netty的知識點;下篇通過對源碼的層層剖析,讓讀者能夠掌握Netty底層原理,知其然並知其所以然,從而編寫出高性能網絡應用程序。 如果你想全面系統地學習Netty,並掌握一些性能調優方法,本書上篇可以幫助你完成這個目標。如果你想深入瞭解Netty的底層設計,編寫出更靈活高效的網絡通信程序,本書下篇可以幫助你完成這個目標。如果你從未讀過開源框架源碼,本書將是你的第一本源碼指導書,讀源碼並不難,難的是邁出這一小步,之後就能通往更廣闊的世界。


目錄大綱


上篇入門實戰 
□□章即時聊天系統簡介
1.1 單聊流程
1.□ 單聊的指令
1.3 群聊流程 
1.4 群聊要實現的指令集
1.5 Netty
1.6 本書實現的即時聊天形式
第□章Netty是什麼
□.1 IO編程
□.□ NIO編程
□.3 Netty編程
第3章Netty開發環境配置
3.1 Maven
3.□ Git
3.3 IntelliJ IDEA
第4章服務端啟動流程
4.1 服務端啟動□小化代碼
4.□ 自動綁定遞增端口
4.3 服務端啟動的其他方法
4.4 總結
第5章客戶端啟動流程
5.1 客戶端啟動Demo
5.□ 失敗重連
5.3 客戶端啟動的其他方法
5.4 總結
5.5 思考
第6章客戶端與服務端雙向通信
6.1 客戶端發送數據到服務端
6.□ 服務端讀取客戶端數據
6.3 服務端返回數據到客戶端
6.4 總結
6.5 思考
第7章數據載體ByteBuf的介紹
7.1 ByteBuf的結構
7.□ 容量API
7.3 讀寫指針相關的API
7.4 讀寫API
7.5 實戰
7.6 總結
7.7 思考
第8章客戶端與服務端通信協議編解碼
8.1 什麼是客戶端與服務端的通信協議
8.□ 通信協議的設計
8.3 通信協議的實現
8.4 總結
8.5 思考
第9章實現客戶端登錄
9.1 登錄流程
9.□ 邏輯處理器
9.3 客戶端發送登錄請求
9.4 服務端發送登錄響應
9.5 總結
9.6 思考
□□0章實現客戶端與服務端收發消息
10.1 收發消息對象
10.□ 判斷客戶端是否登錄成功
10.3 在控制台輸入消息並發送
10.4 服務端收發消息處理
10.5 客戶端收消息處理
10.6 總結
10.7 思考
□□1章Pipeline與ChannelHandler
11.1 Pipeline與ChannelHandler的構成
11.□ ChannelHandler的分類
11.3 ChannelInboundHandler的事件傳播
11.4 ChannelOutboundHandler的事件傳播
11.5 總結
11.6 思考
□□□章構建客戶端與服務端的Pipeline
1□.1 ChannelInboundHandlerAdapter與ChannelOutboundHandlerAdapter
1□.□ ByteToMessageDecoder
1□.3 SimpleChannelInboundHandler
1□.4 MessageToByteEncoder
1□.5 構建客戶端與服務端的Pipeline
1□.6 總結
1□.7 思考
□□3章拆包/粘包理論與解決方案
13.1 拆包/粘包例子
13.□ 為什麼會有粘包、半包現象
13.3 拆包的原理
13.4 Netty自帶的拆包器
13.5 如何使用LengthFieldBasedFrameDecoder
13.6 拒絕非本協議連接
13.7 客戶端和服務端的Pipeline結構
13.8 總結
13.9 思考
□□4章ChannelHandler的生命週期
14.1 ChannelHandler的生命週期詳解
14.□ ChannelHandler生命週期各回調方法的用法舉例
14.3 總結
14.4 思考
□□5章使用ChannelHandler的熱插拔實現客戶端身份校驗
15.1 身份檢驗
15.□ 移除校驗邏輯
15.3 身份校驗演示
15.4 總結
15.5 思考
□□6章客戶端互聊的原理與實現
16.1 □終效果
16.□ 一對一單聊的原理
16.3 一對一單聊的實現
16.4 總結
16.5 思考
□□7章群聊的發起與通知
17.1 □終效果
17.□ 群聊的原理
17.3 控制台程序重構
17.4 創建群聊的實現
17.5 總結
17.6 思考
□□8章群聊的成員管理
18.1 □終效果
18.□ 群的加入
18.3 群的退出
18.4 獲取群成員列表
18.5 總結
18.6 思考
□□9章群聊消息的收發及Netty性能優化
19.1 群聊消息的□終效果
19.□ 群聊消息的收發實現
19.3 共享Handler
19.4 壓縮Handler——合併編解碼器
19.5 縮短事件傳播路徑
19.6 減少阻塞主線程的操作
19.7 如何準確統計處理時長
19.8 總結
第□0章心跳與空閒檢測
□0.1 網絡問題
□0.□ 服務端空閒檢測
□0.3 客戶端定時發心跳數據包
□0.4 服務端回复心跳與客戶端空閒檢測
□0.5 總結
□0.6 思考
下篇源碼分析
第□1章服務端啟動流程解析
□1.1 服務端啟動示例
□1.□ 服務端啟動的核心步驟
□1.3 創建服務端Channel
□1.4 初始化服務端Channel
□1.5 註冊服務端Channel
□1.6 綁定服務端端口
□1.7 總結
第□□章Reactor線程模型解析
□□.1 NioEventLoopGroup的創建
□□.□ NioEventLoop對應線程的創建和啟動
□□.3 NioEventLoop的執行流程
□□.4 總結
第□3章客戶端連接接入流程解析
□3.1 新連接接入的總體流程
□3.□ 檢測到有新連接
□3.3 註冊Reactor線程
□3.4 總結
第□4章編碼原理解析
□4.1 粘包與拆包
□4.□ 拆包的原理
□4.3 Netty中拆包的基類
□4.4 拆包抽象
□4.5 行拆包器
□4.6 特定分隔符拆包
□4.7 LengthFieldBasedFrameDecoder 進階用法
□4.8 LengthFieldBasedFrameDecoder源碼剖析
□4.9 總結
第□5章ChannelPipeline解析
□5.1 ChannelPipeline的初始化
□5.□ ChannelPipeline添加ChannelHandler
□5.3 ChannelPipeline刪除ChannelHandler
□5.4 Inbound事件的傳播
□5.5 Outbound事件的傳播
□5.6 ChannelPipeline中異常的傳播
□5.7 總結
第□6章writeAndFlush解析
□6.1 Pipeline中的標準鍊錶結構
□6.□ Java對象編碼過程
□6.3 write:寫隊列
□6.4 flush:刷新寫隊列
□6.5 writeAndFlush:寫隊列並刷新
□6.6 總結
第□7章本書總結
□7.1 Netty是什麼
□7.□ 服務端和客戶端的啟動
□7.3 ByteBuf
□7.4 自定義協議拆包與編解碼
□7.5 Handler與Pipeline
□7.6 耗時操作的處理與統計
□7.7 □後的話




相關書籍

Java Language Features: With Modules, Streams, Threads, I/O, and Lambda Expressions

作者 Kishori Sharan

2022-02-01

應用型大學電腦專業系列教材:Java基礎程序設計

作者

2022-02-01

圖解程式設計 ─ 使用 Visual C# 2013

作者 李春雄

2022-02-01