1

Nettyを使い始めたばかりです。私はすでにサーバーを持っており、クライアント用のコードを書いています。

クライアントで、このコードを使用してClientBootstrapオブジェクトに新しいPipelineFactoryを設定します

    bootstrap.setPipelineFactory(new ChannelPipelineFactory() 
    {
        public ChannelPipeline getPipeline() 
        {
            return Channels.pipeline(new ResponseHandler());
        }
    }
                                );

ここで、ResponseHandler()は、SimpleChannelHandlerを拡張する私のクラスです。

チャンネルIDを探しています。やった

 bootstrap.getPipeline().getChannel().getId();

しかし、IllelgalStateExceptionがスローされ、setPipelineFactory()を呼び出したため、getPipeline()を呼び出すことができないと表示されます。チャネルIDを取得する方法は何ですか?

4

1 に答える 1

1

コネクトに電話しましたか?Nettyチュートリアル(3.5)

接続後、 SimpleChannelHandler(3.5)のすべてのメソッドでチャネルIDを取得できると思います。

ChannelEvent.getChannel().getId()

Netty4の場合

ChannelHandlerContextオブジェクト(変数名= ctx)が与えられると、次のようになります。

ctx.channel().id()
于 2012-07-11T11:33:40.970 に答える