在Netty 4中读取延迟通道

时间:2013-08-19 11:36:53

标签: java netty

有没有办法告诉 netty 4 停止从频道播放,直到重新启用它为止?

我希望客户向我发送他们的凭据,然后是一些数据。为了便于使用此协议,我不希望客户端等待OK或ERROR,直到他们可以发送数据。也许有一个DelayHandler或类似的东西,只是将所有收到的缓冲区放入队列,但我找不到类似的东西。

由于验证不是即时完成的,我不得不阻止网络线程,这当然是个坏主意。

2 个答案:

答案 0 :(得分:1)

使用AUTO_READ ChannelOption,它允许您控制何时读取数据。

E.g。 https://github.com/netty/netty/blob/master/example/src/main/java/io/netty/example/proxy/HexDumpProxy.java

答案 1 :(得分:0)

一种可能适合您目的的方法是使用ReplayingDecoder:每次输入一大块输入时,您将看到它,每次您都可以选择说“不,这是不够的输入;当更多的输入进来时,再问我一次。“整个输入将累积并将重播给您,以便最大程度地方便。