【问题标题】:Netty - Find Channel IDNetty - 查找频道 ID
【发布时间】:2012-07-10 23:38:27
【问题描述】:

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

【问题讨论】:

    标签: netty channel illegalstateexception


    【解决方案1】:

    你打过connect吗? Netty tutorial (3.5)

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

    ChannelEvent.getChannel().getId()
    

    对于 Netty 4

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

    ctx.channel().id()
    

    【讨论】:

    • @MouseEvent 已修复,尽管 Netty 的最新稳定版本现在是 4.x 系列。
    猜你喜欢
    • 2016-01-25
    • 1970-01-01
    • 2014-02-19
    • 2016-12-26
    • 2012-12-21
    • 2013-12-28
    • 2015-06-03
    • 2013-09-02
    • 1970-01-01
    相关资源
    最近更新 更多