2016-04-11 19 views
1

Günlük kaydı için ChannelID kullanılan dinleyiciye, işleyicimin onDataRead yöntemini geçersiz kılmalı.Ana Kanallar'a CustomHandlers onDataRead yönteminde nasıl erişilir

Inbound günlüğünde doğru kimliği görüyorum. (Aşağıya bakınız). Ama böyle id elde etmeye çalışmak zaman:

Gelen günlüğü:

----------------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 
------------------------------------ 

nedeni ne olabilir aşağıda benim günlüğüne gösterir daha bu başka id yazdırır

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

ChannelHandlerContext farklı bir kimlik için? Gelen günlüğünde farklı bir kimlik gösteriliyor mu? Gelen günlüğünde gösterildiği gibi aynı kimliği nasıl alabilirim?

cevap

1

javadoc okuyarak bir kaç saat sonra ben üst kanalı bulmak için aşağıdaki yöntemi buldum (ve kimliğidir)

ctx.channel().parent().id());