Netty:禁用自动读取对于 `ByteToMessageDecoder` 无效?

4
我正在使用来自Maven中央的4.1.0.Final版本。在我的应用程序中,我像这样在某个点禁用了自动读取:
channel.config().setIsAutoRead(false);
我没有调用read方法,但我的应用程序仍然在读取。在我的管道中只有一个ByteToMessageDecoder,并且我的(可共享的)初始化程序是我的服务器引导程序的子处理程序。为什么会这样?自动读取不能实时禁用吗?这是一个bug吗?
3个回答

6

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


4

0

遇到了相同的问题,通过将ByteToMessageDecoder#singleDecode设置为true来解决它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接