Netty - 查找频道ID

问题描述 投票:1回答: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()。获取频道ID的方法是什么?

netty channel illegalstateexception
1个回答
1
投票

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

我认为连接后你可以获得SimpleChannelHandler (3.5)的所有方法的频道ID

ChannelEvent.getChannel().getId()

对于Netty 4

给定ChannelHandlerContext对象(变量名= ctx)就可以了

ctx.channel().id()
© www.soinside.com 2019 - 2024. All rights reserved.