1

我刚开始使用 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()。获取 Channel ID 的方法是什么?

4

1 回答 1

1

你打过connect吗?Netty 教程(3.5)

我认为连接后您可以使用SimpleChannelHandler (3.5)的所有方法获取通道 ID

ChannelEvent.getChannel().getId()

对于 Netty 4

给定 ChannelHandlerContext 对象(变量名 = ctx)

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