编写时是否可以跳过多个通道处理程序?



我试图在我的写管道中跳过多个ChannelHandler,以便发送一个小的调试ByteBuf。我知道你可以根据对象在同一管道中开发多条路径,但对于这个,我只想在管道的最后快速转储这个ByteBuf。例如:

Pipeline (Out):
Base ->编码器→计量器→加密→帧长度追加器

所以我想从Base一直到Frame length appender

您可以这样做,但我真的不建议这样做。最好让您的ChannelHandler根据消息类型做正确的事情。

说的是这样做的:

ChannelHandler context = channel.pipeline().context(Encrypter.class);
context.write(msg);

你可以这样试试

ctx.pipeline().context("Encrypter").write("your msg");

这将获得Encrypter ChannelHandlerContext并触发下一个帧长度appender处理程序来处理。

最新更新