如果客户端错误连接到Netty服务器会发生什么?

时间:2011-12-20 15:36:47

标签: 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丢弃与该连接相关的所有资源,并释放所有资源&#34;?

2-客户端连接发送3个字节不关闭连接并保持打开状态。另一个客户端连接并执行相同的操作并继续。在这一点上资源是正确的吗?有没有一种默认的方法来处理这个问题,还是需要附加一个读取超时处理程序?

由于

1 个答案:

答案 0 :(得分:1)

1)是的,一旦通道关闭,它将释放缓冲的字节。 2)看看IdleStateHandler和IdleStateAwareHandler。这些将帮助您在一些不活动后断开客户端。