java Netty:禁用自动读取对“字节到消息解码器”不起作用?

vfwfrxfs  于 2023-02-02  发布在  Java
关注(0)|答案(3)|浏览(105)

我使用的是Maven中心的4.1.0.Final。
在我的应用程序中,我在某个时间点之后禁用自动读取,如下所示:
channel.config().setIsAutoRead(false);
我没有对read进行任何调用,但我的应用程序仍然可以读取,在我的管道中只有一个ByteToMessageDecoder,我的(可共享的)初始化器是我的服务器 Bootstrap 的子处理程序。
这是为什么?自动读取不能在运行中禁用吗?这是一个bug吗?

50few1ms

50few1ms1#

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

kb5ga3dv

kb5ga3dv2#

FlowControlHandler是最近添加的,并且在此上下文中可能有用。

s3fp2yjn

s3fp2yjn3#

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

相关问题