Netty服务端Handler
在 Netty 配置服务端时,添加的真正处理业务逻辑的 NettyServerHandler
。
概述
NettyServerHandler
继承 ChannelInboundHandlerAdapter
,覆写 channelRead
、userEventTriggered
、exceptionCaught
三个方法。
channelRead
:处理接收到的数据,调用本地服务,并将结果发送会客户端。
userEventTriggered
:对Netty心跳检测时间进行处理,读超时的话,关闭ctx。
exceptionCaught
:处理异常。
channelRead
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
try {
log.info("server receive msg: [{}]", msg);
log.info("sleep some second: [{}]", 5);
Thread.sleep(5000);
RpcRequest rpcRequest = (RpcRequest) msg;
if (rpcRequest.getRpcMessageType() == RpcMessageType.HEART_BEAT) {
log.info("receive heat beat msg form client");
return;
}
// 拿到request,使用反射调用服务。
Object result = rpcRequestHandler