Netty:禁用自动读取不适用于 `ByteToMessageDecoder`?

Netty: Disabling auto-read doesn't work for `ByteToMessageDecoder`?

我正在使用 Maven Central 的 4.1.0.Final。

在我的应用程序中,我在某个点后禁用自动读取,如下所示:

channel.config().setIsAutoRead(false);

我没有对 read 进行任何调用,但我的应用程序仍在读取。在我的管道中只有一个 ByteToMessageDecoder,我的(可共享的)初始化程序是我的服务器 bootstrap 的子处理程序。

这是为什么?不能即时禁用自动读取吗?这是一个错误吗?

如果您的管道中有一个 ByteToMessageDecoder,它将继续读取,直到您将一个对象放入解码方法的输出列表中。这是因为否则用户可能永远没有机会自己调用 read()。

FlowControlHandler 是最近添加的,在这方面可能会有用。