Netty - 查找频道ID

时间:2012-07-11 11:00:12

标签: netty channel illegalstateexception

我刚开始与Netty合作。我已经有了服务器,我正在为客户端编写代码。

在客户端中,我使用此代码为ClientBootstrap对象设置了一个新的PipelineFactory

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

其中ResponseHandler()是我的类,它扩展了SimpleChannelHandler。

我正在寻找频道ID。我做了

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

但它抛出IllelgalStateException并说我不能调用getPipeline(),因为我调用了setPipelineFactory()。获取频道ID的方法是什么?

1 个答案:

答案 0 :(得分:1)

你打电话给连接吗? Netty tutorial (3.5)

我认为连接后您可以使用

获取SimpleChannelHandler (3.5)所有方法的频道ID
ChannelEvent.getChannel().getId()

对于Netty 4

给定ChannelHandlerContext对象(变量名= ctx),它将是

ctx.channel().id()