我有一个带有多个适配器的Netty管道,其中很少只适用于第一个到达的消息。这意味着在处理完消息之后我想要将其传递出去,然后从管道中删除适配器。我尝试了以下两种方法: 1. super.channelRead(ctx,msg);那么ctx.pipeline()。remove(this); 2. ctx.pipeline()。remove(this);那么super.channelRead(ctx,msg);
他们两个现在都在工作,但我不清楚是否有任何差异,是否有任何“最佳实践”使用它们。 感谢
答案 0 :(得分:0)
两种选择都很好。唯一的区别是处理程序将从管道中删除的时间。在特定情况下,它可能会对执行流程产生一些影响。我自己的建议 - 一旦你不需要它或者一旦它执行了所有必要的操作就立即删除处理程序。