接上一篇文件的项目继续讲解:Netty的深入浅出--1.项目初次尝试
在浏览器中可能会发送两次请求:
上面可以看到我们控制台打印了两次,说明浏览器客户端向后台发送了两次请求,而两次请求分别是:一个是我们的地址请求,一个是浏览器自身向后台请求网站图标
解决办法:对请求进行判断,如果是favicon.ico请求就退出不执行后面的
再次运行:
由于自定义处理器继承的是SimpleChannelInboundHandler
SimpleChannelInboundHandler继承于ChannelInitialzer
然后我们重写他们的方法,以此来让我们进一步分析Netty:
重写方法,观察其执行顺序:
修改一下:
浏览器调用(会发现服务器一直在运行,没有停止):
问题出现了,执行了registered没有执行unregistered,原因在于请求在该管道处理器处理完之后,还会一直等待下一个请求,因此需要我们每次请求完毕之后手动去关闭
再一次重新启动和请求:
判断msg的类型:
浏览器运行(为什么是这样的话,后面再做具体讲解):
可以获取远程地址: