2012-07-11 34 views
1

我剛開始使用Netty。我已經有一臺服務器,並且正在爲客戶端編寫代碼。Netty - 查找頻道ID

在客戶端,我設置爲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

你有沒有叫連接? Netty tutorial (3.5)

我想連接可以用

ChannelEvent.getChannel().getId() 

獲得信道ID上的SimpleChannelHandler (3.5)所有方法對於Netty的4

給出的ChannelHandlerContext對象(變量名= CTX)後它將是

ctx.channel().id() 
+0

鏈接被打破 – Mordechai 2016-01-24 16:38:29

+0

@MouseEvent固定,雖然最新的Netty穩定版本現在在4.x系列。 – 2016-01-25 12:14:48