netty ChannelHandlerAdapter 用法

天王盖地虎626 发布于 2014/09/07 11:54
阅读 7K+
收藏 0

云原生2.0展望丨从“小众”到“首选”,推动云原生产业落地华为云作用几何?>>>

netty服务端

ch. pipeline ( )
                                    . addLast (
                                            new LogionAuthHandler (LogLevel. INFO )
                                          
                                             new HeartBeatReqHandler ( ) ) ;
                        }
                    } ) ;

这2个类LoginAuthHandler ,HeartBeatReqHandler 都继承了ChannelHandlerAdapter都重写了方法channelRead,那如果有客户端和服务端交互的时候,如果一个客户端报文过来后,首先应该LogionAuthHandler 的方法channelRead进行拦截处理,如果发现报文不是登陆信息,而仅仅是一个心跳报文,请问,程序是要怎么写,才能把这个报文顺利传递到HeartBeatReqHandler 的方法channelRead中?

加载中
0
天杀的巧克力
netty会自动过滤的。写Decode,在Decode中解析你的数据,返回解析对象。在你的非Decode Handler中得到这个对象进行处理具体的业务逻辑。
0
天杀的巧克力

引用来自“icmilyc”的评论

netty会自动过滤的。写Decode,在Decode中解析你的数据,返回解析对象。在你的非Decode Handler中得到这个对象进行处理具体的业务逻辑。
刚学习netty来着
0
L
Laerf
if (如果是登录报文) {
//处理登录信息
} else { // 其它报文
// 这句话就是调用下一个channelRead
   ctx.fireChannelRead(msg);
}
}
0
myhnuhai
myhnuhai

引用来自“Laerf”的评论

if (如果是登录报文) {
//处理登录信息
} else { // 其它报文
// 这句话就是调用下一个channelRead
   ctx.fireChannelRead(msg);
}
}
ctx.fireChannelRead(msg);
返回顶部
顶部