Netty 客户端登陆流程

时间:2024-03-29 10:21:02

Netty 客户端登陆流程

接上篇,九份小火车的驾驶室

Netty 客户端登陆流程

终点站,熟悉吗?《那些年我们追过的女孩》场景之一

Netty 客户端登陆流程

到了九份,依山而建,山下远处就是大海

Netty 客户端登陆流程

像不像千与千寻里的,宫崎骏的千与千寻就是在这里完成构思

Netty 客户端登陆流程

汤婆婆的屋

Netty 客户端登陆流程

最后来张小吃店的图,好多小吃,人很多,很温馨。

                                                                               微信公众号

Netty 客户端登陆流程

Netty 客户端登陆流程

                                              王皓的GitHub:https://github.com/TenaciousDWang

 

        今天来实现Netty客户端登陆功能,服务端收到后返回响应,客户端收到服务端响应后打印到控制台,具体流程图如下。

 

Netty 客户端登陆流程

 

        之前我们已经创建了一个客户端和一个服务端,根据上面的登陆逻辑流程先开始实现客户端的发送登录请求的逻辑,我们只需要编写一个登陆逻辑处理器,绑定到channel的逻辑处理链上即可。接下来我们来实现它。

 

         首先来改造一下编码过程的方法为ByteBuf encode(ByteBuf byteBuf,Packet packet),并将PacketCodeC写成单例,不再手动创建ByteBuf,而是从ChannelHandlerContext中获取。

 

Netty 客户端登陆流程

 

        然后创建逻辑处理器。

 

Netty 客户端登陆流程

 

        连接成功时会调用channelActive方法,我们先创建一个登陆对象,设置数据后,进行编码返回ByteBuf后,为连接写入数据发送。最后我们给客户端添加刚才创建的处理器。

 

Netty 客户端登陆流程

 

        接下来我们来创建服务端逻辑处理器,服务端的handler,服务端使用channelRead()方法读取数据,创建登陆响应指令数据包。根据校验用户数据情况填充不同响应数据,写入响应,同样也将这个逻辑处理器给服务端绑定上。

 

Netty 客户端登陆流程

 

        最后客户端的Handler需要添加channelRead()方法读取服务端返回的响应数据。

 

Netty 客户端登陆流程

 

最后启动服务端与客户端,即可在控制台看到结果~