Netty - 查找频道 ID

Posted

技术标签:

【中文标题】Netty - 查找频道 ID【英文标题】:Netty - Find Channel 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的获取方法是什么?

【问题讨论】:

【参考方案1】:

你打过connect吗? Netty tutorial (3.5)

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

ChannelEvent.getChannel().getId()

对于 Netty 4

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

ctx.channel().id()

【讨论】:

@MouseEvent 已修复,尽管 Netty 的最新稳定版本现在是 4.x 系列。

以上是关于Netty - 查找频道 ID的主要内容,如果未能解决你的问题,请参考以下文章

Netty 大约 10 分钟后断开频道

Netty 不关闭频道

如何在 Netty 中的 ssl 握手之前优雅地关闭频道?

NettyIO 未正确删除频道

PHP - 在 OAuth 之后获取频道 ID - YouTube API

网状。成功 bootstrap.connect 后的频道是活动频道吗?