工場の外でチャネル パイプラインを変更する必要があります。
ChannelPipelineFactory factory = new ChannelPipelineFactory() {
@Override
public ChannelPipeline getPipeline() throws Exception {
ChannelPipeline pipeline = pipeline();
pipeline.addLast("decoder", new StringDecoder());
pipeline.addLast("encoder", new StringEncoder());
return pipeline;
}
};
新しいチャネルを作成すると、ファクトリ getPipeline() が呼び出されます。
このチャネルでメッセージを送信すると、電話をかけます
channel.getPipeline().addLast("id",handler);
しかし、数ミリ秒後に同じチャネルにメッセージが到着し、channel.getPipeline().get("id") を呼び出すと、null 値が返されます。パイプラインが変更されたことを netty に伝える方法はありますか、それともファクトリの外で addLast を呼び出すべきではありませんか?
ありがとう、リーン