Netty体验

Posted 赵KK日常技术记录

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netty体验相关的知识,希望对你有一定的参考价值。

经过简单的环境搭建,以及Helloworld的跑通,简单理解了Netty的运行流程以及启动方式,以后的所有的Netty运行都可以简单理解为:
定义好父子线程组–>在childInitializer定义好相关处理通道处理器-->自己提供处理器在回调函数返回这样一个流程;

我们通过一个模拟客户端与服务器端通信的过程,深入了解下运行过程:

server端代码

serverInitializer

Netty体验(二)

这里新增了String编码与解码的decoder

serverHandler

Netty体验(二)

在接下来的学习中,意识到Handler是Netty最重要的部分,其实现由100多种

接下来Client端

Netty体验(二)

ClientInitializer

Netty体验(二)ClientHandler

Netty体验(二)

我们通过对serverhandler实现方法看一下请求到达时,Netty是如何进行处理的:

Netty体验(二)

Netty体验(二)

发送请求:localhost:8080

看下控制台输出

Netty体验(二)

当请求到达时:处理add一个handler进行处理,然后注册,激活,调用channelRead0方法

然后我们把客户端,服务器端同时启动

服务器端输出

客户端输出

服务器端与客户端正在源源不断的进行输出

Handler的实现我这里理解类似与Spring对Httpservlet的继承,重写方法后进行处理;

public abstract class SimpleChannelInboundHandler<I>
extends ChannelInboundHandlerAdapter
常用的
SimpleChannelInboundHandler

继承了
ChannelInboundHandlerAdapter
* <p>* Please keep in mind that
{
@link #channelRead0(ChannelHandlerContext, I)}
will be renamed to
* {@code messageReceived(ChannelHandlerContext, I)}
in 5.0.
* </p>
我们看下这段注释:在Netty5.0版本,channelread0被命名为
messageReceived,但是随后由于版本存在问题5.0已经被弃用了
文末:关注公众号回复送书,免费获取
《Springcloud与Docker微服务架构实战》电子版书籍,有效期7天
,下集推出《Netty权威指南》电子版书籍,欢迎投稿,指正

以上是关于Netty体验的主要内容,如果未能解决你的问题,请参考以下文章

Tailwind.css 体验总结

Tailwind.css 体验总结

Netty SSL:具有自定义密钥库的Chat Client示例无法接受多个连接

Netty那点事概述

vs code初体验

25个可遇不可求的jQuery插件