如果客户端连接到Netty服务器时发生错误,会发生什么情况?
问题描述:
所以说我有以下的解码器...如果客户端连接到Netty服务器时发生错误,会发生什么情况?
public class MyDecoder extends FrameDecoder1 {
@Override
protected Object decode(
ChannelHandlerContext ctx, Channel channel, ChannelBuffer buffer)2 {
if (buffer.readableBytes() < 4) {
return null;
}
return buffer.readBytes(4);
}
}
如果一个客户端连接,从不发送4个字节会发生什么?
1-客户端连接发送3个字节关闭连接。 Netty放弃与该连接相关的所有资源“释放”的所有资源?
2-客户端连接发送3个字节不关闭连接并保持打开状态。另一个客户端连接并执行相同的事情,并继续。在这一点上资源是正确的?有没有一个默认的方式来处理这个问题,还是我需要附加一个读取超时处理程序或什么?
谢谢
答
1)是的,只要通道关闭,它将释放缓冲的字节。 2)看看IdleStateHandler和IdleStateAwareHandler。这些将有助于您在闲置后断开客户端连接。
谢谢看起来不错!我会试试看! – user432024 2011-12-21 15:02:53