1. 尝试一下helloword demo
-->官方例子 https://github.com/netty/netty
-->简书的入门级netty聊天demo
2.netty入门级群聊demo,发现有3个问题
问题1:没有显示用户的名字 (现在处理)
问题2:上下线显示 (channelActive/channelInactive监听实现)
问题3:图片的传送 (待处理)
3.encoder decoder 都是(官方/第三方)提供??自定义encoder和decoder完全搞不懂是怎么弄的?
-->官方的确有提供encoder和decoder
-->如果有官方肯定优先使用官方的
String --> StringDecoder/StringEncoder
Http --> HttpRequestEncoder / HttpResponseDecoder
对象传递 --> ObjectEncoder/ObjectDecoder
4.Netty Client重连实现
-->需要重链的情况:
1.Netty Client启动的时候需要重连
2.在程序运行中连接断掉需要重连。
5. TCP粘包/TCP拆包是什么? 怎么重现?怎么解决?
"问题一"答案:
eg: 假设客户端发送两个独立的数据包 [A] [B]给服务端
服务端接收情况为:
1.两个独立数据包[1][2],没有粘包和没有沾包
2.两个数据包粘在一起[1,2],被称为tcp 粘包
3.独立数据包[1]被拆分成[1-a][1-b]而且而且[1-b]和[2]数据包粘在一起
4.一个数据包很大被多次拆分
"问题二"答案:
服务端连续不断接受客户端ByteBuf
"问题三"答案: 使用LineBasedFrameDecoder
eg: https://www.cnblogs.com/EnzoDin/p/7922003.html
6. ByteBuf介绍
7. 文件传输,实际应用中有视频上传,图片上传
eg: https://www.cnblogs.com/cq-jiang/p/7620425.html (项目说明)
https://github.com/jlq023/netty (github)
8. netty服务端和客户端代码的不同点(肤浅对比)?
server : 两个EventLoopGroup ServerBootstrap 有option/childHandler
client : 一个EventLoopGroup Bootstrap 无~~~~~~~~~~~~~~~~~~~
10.对象传递,字面意思就是netty服务器和客户端之间的java对象传递
前提:java原始的POJO序列化 (额外提到一点: jdk自带序列化方案性能不是最优秀的?)
eg:http://blog.csdn.net/AlbertFly/article/details/51527488
11. netty是在支持什么协议的关键代码在哪里?
12. ChnnelOption 都有哪些设置?
13. UDP广播,http2,websocket?
14. spdy比http协议web页面加载速度快50%,,,,http2的前身是spdyy
15. websocket + webRtc + layui的文字图片视频语音聊天