2016-04-11 3 views
1

ログを取得するために、使用済みリスナーChannelIDを取得して、ハンドラのonDataReadメソッドをオーバーライドする必要があります。CustomHandlers onDataReadメソッドでマスターChannelIDを取得する方法

受信ログには正しいIDが表示されます。 (下記参照)。私はこのようなIDを取得しようとすると、しかし:

public void onDataRead(ChannelHandlerContext ctx, Http2DataFrame data) throws Exception { 
    if (data.isEndStream()) { 
     System.out.println(ctx.channel().id()); 
} } 

を、それは以下の私のログに表示さよりも、これは、別のIDを出力します:

インバウンドログ:

----------------INBOUND-------------------- 
[id: 0x73888d9b, L:/127.0.0.1:8080 - R:/127.0.0.1:6624] HEADERS: streamId=5, headers=DefaultHttp2Headers[:path: test/, :method: POST, :scheme: http, :authority: 127.0.0.1:8080, accept-encoding: gzip, accept-encoding: deflate], streamDependency=0, weight=16, exclusive=false, padding=0, endStream=false 
------------------------------------ 

を理由何ができますか別のIDのChannelHandlerContextにありますか?インバウンドログに異なるIDが表示されていますか?受信ログに表示されているのと同じIDを取得するにはどうすればよいですか?

答えて

1

のjavadocを読んでの数時間後、私は親チャンネルを検索するには、次の方法を発見した(そしてそれはIDです)

ctx.channel().parent().id()); 
関連する問題