1

工場の外でチャネル パイプラインを変更する必要があります。

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 を呼び出すべきではありませんか?

ありがとう、リーン

4

0 に答える 0