5.0 用户推荐指数
互联网
类型
8.5
豆瓣评分
可以朗读
语音朗读
248千字
字数
2022-03-01
发行日期
展开全部
主编推荐语
一本专门为Netty初学者打造的入门及进阶学习图书。
内容简介
本书分上下两篇。上篇通过一个即时聊天系统的实战案例,让读者能够系统地使用一遍Netty,全面掌握Netty的知识点;下篇通过对源码的层层剖析,让读者能够掌握Netty底层原理,知其然并知其所以然,从而编写出高性能网络应用程序。
如果你想全面系统地学习Netty,并掌握一些性能调优方法,本书上篇可以帮助你完成这个目标。如果你想深入了解Netty的底层设计,编写出更灵活高效的网络通信程序,本书下篇可以帮助你完成这个目标。如果你从未读过开源框架源码,本书将是你的本源码指导书,读源码并不难,难的是迈出这一小步,之后就能通往更广阔的世界。
目录
- 版权信息
- 内容简介
- 推荐语
- 推荐序
- 前言
- 上篇 入门实战
- 第1章 即时聊天系统简介
- 1.1 单聊流程
- 1.2 单聊的指令
- 1.3 群聊流程
- 1.4 群聊要实现的指令集
- 1.5 Netty
- 1.6 本书实现的即时聊天形式
- 第2章 Netty是什么
- 2.1 IO编程
- 2.2 NIO编程
- 2.3 Netty编程
- 第3章 Netty开发环境配置
- 3.1 Maven
- 3.2 Git
- 3.3 IntelliJ IDEA
- 第4章 服务端启动流程
- 4.1 服务端启动最小化代码
- 4.2 自动绑定递增端口
- 4.3 服务端启动的其他方法
- 4.4 总结
- 第5章 客户端启动流程
- 5.1 客户端启动Demo
- 5.2 失败重连
- 5.3 客户端启动的其他方法
- 5.4 总结
- 5.5 思考
- 第6章 客户端与服务端双向通信
- 6.1 客户端发送数据到服务端
- 6.2 服务端读取客户端数据
- 6.3 服务端返回数据到客户端
- 6.4 总结
- 6.5 思考
- 第7章 数据载体ByteBuf的介绍
- 7.1 ByteBuf的结构
- 7.2 容量API
- 7.3 读写指针相关的API
- 7.4 读写API
- 7.5 实战
- 7.6 总结
- 7.7 思考
- 第8章 客户端与服务端通信协议编解码
- 8.1 什么是客户端与服务端的通信协议
- 8.2 通信协议的设计
- 8.3 通信协议的实现
- 8.4 总结
- 8.5 思考
- 第9章 实现客户端登录
- 9.1 登录流程
- 9.2 逻辑处理器
- 9.3 客户端发送登录请求
- 9.4 服务端发送登录响应
- 9.5 总结
- 9.6 思考
- 第10章 实现客户端与服务端收发消息
- 10.1 收发消息对象
- 10.2 判断客户端是否登录成功
- 10.3 在控制台输入消息并发送
- 10.4 服务端收发消息处理
- 10.5 客户端收消息处理
- 10.6 总结
- 10.7 思考
- 第11章 Pipeline与ChannelHandler
- 11.1 Pipeline与ChannelHandler的构成
- 11.2 ChannelHandler的分类
- 11.3 ChannelInboundHandler的事件传播
- 11.4 ChannelOutboundHandler的事件传播
- 11.5 总结
- 11.6 思考
- 第12章 构建客户端与服务端的Pipeline
- 12.1 ChannelInboundHandlerAdapter与ChannelOutboundHandlerAdapter
- 12.2 ByteToMessageDecoder
- 12.3 SimpleChannelInboundHandler
- 12.4 MessageToByteEncoder
- 12.5 构建客户端与服务端的Pipeline
- 12.6 总结
- 12.7 思考
- 第13章 拆包/粘包理论与解决方案
- 13.1 拆包/粘包例子
- 13.2 为什么会有粘包、半包现象
- 13.3 拆包的原理
- 13.4 Netty自带的拆包器
- 13.5 如何使用LengthFieldBasedFrameDecoder
- 13.6 拒绝非本协议连接
- 13.7 客户端和服务端的Pipeline结构
- 13.8 总结
- 13.9 思考
- 第14章 ChannelHandler的生命周期
- 14.1 ChannelHandler的生命周期详解
- 14.2 ChannelHandler生命周期各回调方法的用法举例
- 14.3 总结
- 14.4 思考
- 第15章 使用ChannelHandler的热插拔实现客户端身份校验
- 15.1 身份检验
- 15.2 移除校验逻辑
- 15.3 身份校验演示
- 15.4 总结
- 15.5 思考
- 第16章 客户端互聊的原理与实现
- 16.1 最终效果
- 16.2 一对一单聊的原理
- 16.3 一对一单聊的实现
- 16.4 总结
- 16.5 思考
- 第17章 群聊的发起与通知
- 17.1 最终效果
- 17.2 群聊的原理
- 17.3 控制台程序重构
- 17.4 创建群聊的实现
- 17.5 总结
- 17.6 思考
- 第18章 群聊的成员管理
- 18.1 最终效果
- 18.2 群的加入
- 18.3 群的退出
- 18.4 获取群成员列表
- 18.5 总结
- 18.6 思考
- 第19章 群聊消息的收发及Netty性能优化
- 19.1 群聊消息的最终效果
- 19.2 群聊消息的收发实现
- 19.3 共享Handler
- 19.4 压缩Handler——合并编解码器
- 19.5 缩短事件传播路径
- 19.6 减少阻塞主线程的操作
- 19.7 如何准确统计处理时长
- 19.8 总结
- 第20章 心跳与空闲检测
- 20.1 网络问题
- 20.2 服务端空闲检测
- 20.3 客户端定时发心跳数据包
- 20.4 服务端回复心跳与客户端空闲检测
- 20.5 总结
- 20.6 思考
- 下篇 源码分析
- 第21章 服务端启动流程解析
- 21.1 服务端启动示例
- 21.2 服务端启动的核心步骤
- 21.3 创建服务端Channel
- 21.4 初始化服务端Channel
- 21.5 注册服务端Channel
- 21.6 绑定服务端端口
- 21.7 总结
- 第22章 Reactor线程模型解析
- 22.1 NioEventLoopGroup的创建
- 22.2 NioEventLoop对应线程的创建和启动
- 22.3 NioEventLoop的执行流程
- 22.4 总结
- 第23章 客户端连接接入流程解析
- 23.1 新连接接入的总体流程
- 23.2 检测到有新连接
- 23.3 注册Reactor线程
- 23.4 总结
- 第24章 解码原理解析
- 24.1 粘包与拆包
- 24.2 拆包的原理
- 24.3 Netty中拆包的基类
- 24.4 拆包抽象
- 24.5 行拆包器
- 24.6 特定分隔符拆包
- 24.7 LengthFieldBasedFrameDecoder进阶用法
- 24.8 LengthFieldBasedFrameDecoder源码剖析
- 24.9 总结
- 第25章 ChannelPipeline解析
- 25.1 ChannelPipeline的初始化
- 25.2 ChannelPipeline添加ChannelHandler
- 25.3 ChannelPipeline删除ChannelHandler
- 25.4 Inbound事件的传播
- 25.5 Outbound事件的传播
- 25.6 ChannelPipeline中异常的传播
- 25.7 总结
- 第26章 writeAndFlush解析
- 26.1 Pipeline中的标准链表结构
- 26.2 Java对象编码过程
- 26.3 write:写队列
- 26.4 flush:刷新写队列
- 26.5 writeAndFlush:写队列并刷新
- 26.6 总结
- 第27章 本书总结
- 27.1 Netty是什么
- 27.2 服务端和客户端的启动
- 27.3 ByteBuf
- 27.4 自定义协议拆包与编解码
- 27.5 Handler与Pipeline
- 27.6 耗时操作的处理与统计
- 27.7 最后的话
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。