Gibt es einen Unterschied zwischen ctx.write () und ctx.channel (). Write () in netty?

Mir ist aufgefallen, dass sich der ctx von Handler zu Handler unterscheidet, auch wenn sich diese Handler zum Beispiel in derselben Pipeline befinden

    p.addLast("myHandler1", new MyHandler1());
    p.addLast("myHandler2", new MyHandler2());

in MyHander1

@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
    System.err.println("My 1 ctx: " + ctx + " channel: " + ctx.channel());
    super.channelRead(ctx, msg);
}

in MyHandler2

@Override
protected void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
    System.err.println("My 2 ctx: " + ctx + " channel: " + ctx.channel());
}

und die Ausgabe:

My 1 ctx: io.netty.channel.DefaultChannelHandlerContext@ba9340 channel: [id: 0xdfad3a16, /127.0.0.1:60887 => /127.0.0.1:8090] 
My 2 ctx: io.netty.channel.DefaultChannelHandlerContext@1551d7f channel: [id: 0xdfad3a16, /127.0.0.1:60887 => /127.0.0.1:8090]

Mir ist aufgefallen, dass der CTX anders ist, aber der Kanal der gleiche

Gibt es also einen Unterschied zwischen invoke ctx.write () und ctx.channel (). Write ()?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage