Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jsbintask22/netty-learning
bio, nio到 netty各种使用案例, 包含基础使用案例,各api使用方法,零拷贝,websocket,群聊,私聊,编码,解码,自定义协议,protobuf等使用案例,rpc服务器,客户端等等学习
https://github.com/jsbintask22/netty-learning
bio http java8 netty nio rpc server springboot websocket
Last synced: 23 days ago
JSON representation
bio, nio到 netty各种使用案例, 包含基础使用案例,各api使用方法,零拷贝,websocket,群聊,私聊,编码,解码,自定义协议,protobuf等使用案例,rpc服务器,客户端等等学习
- Host: GitHub
- URL: https://github.com/jsbintask22/netty-learning
- Owner: jsbintask22
- Created: 2019-01-30T01:03:15.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-05-16T17:21:39.000Z (6 months ago)
- Last Synced: 2024-09-30T14:08:00.653Z (about 1 month ago)
- Topics: bio, http, java8, netty, nio, rpc, server, springboot, websocket
- Language: Java
- Homepage:
- Size: 1.46 MB
- Stars: 61
- Watchers: 2
- Forks: 34
- Open Issues: 2
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
## netty
jdk bio,nio,aio各种使用案例,深入理解netty,结合源码以及文章分析:
1. jdk原生nio的Buffer使用
2. jdk原生的nio channel使用
3. jdk原生的nio网络编程
4. jdk原生的reactor编程模型(使用selector) 聊天室
5. 零拷贝使用案例 文件上传
6. netty 的演变模型(3中reactor使用案例 线程池的添加时机).
7. netty的启动源码(对照之前jdk的写法分析) NioEventLoopGroup 中的成员变量分析(线程池)
8. ChannelHandlerContext和ChannelPipeLine以及Channel的关系
9. 使用netty自带的编码解码器编写一个聊天室
10. 在9的基础上加入私聊功能
11. 在10的基础上加入protobuf的反序列化,提高效率
12. netty在解码过程中的拆包,粘包(由于不知道传输过程是否会一次性传过来一个协议的数据)ByteToMessageDecoder
13. handler执行顺序,结合12 分析 入站, 出站 代码, MessageToByteEncoder
13. writeAndFlush在 channel和ChannelHandlerContext中的区别 (调换 Encoder的位置,找出区别, 最后debug到HeadContext 的flush方法)
以及执行过程(executemask的作用) writeAndFlush 源码执行流程
14. channel最后flush的时候调用javaChannel() write 生成了一个DirectByteBuff 可以提高效率
16. EventExecutorGroup EventExecutor
EventLoopGroup EventLoop SingleThreadEventLoop NioEventLoop 关系17. debug NioEventLoop的源码run (processSelectedKeys(注意finally块有一个runAllTasks方法,确保完成所有channel事件后,在从这个线程执行所有的task任务)->
processSelectedKeysPlain),跟踪ChannelPipeline的初始read() 触发是怎么开始的18. NioServerSocketChannel是如何被创建的以及是如何真正绑定java channel的
19. to be continue...