title: Any difference between ctx.write() and ctx.channel().write() in netty?
body: <p>I noticed that the ctx is different from handler to handler even these handlers are in the same pipeline, for example</p>
  
  <pre><code>    p.addLast("myHandler1", new MyHandler1());
      p.addLast("myHandler2", new MyHandler2());
  </code></pre>
  
  <p>in MyHander1</p>
  
  <pre><code>@Override
  public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
      System.err.println("My 1 ctx: " + ctx + " channel: " + ctx.channel());
      super.channelRead(ctx, msg);
  }
  </code></pre>
  
  <p>in MyHandler2</p>
  
  <pre><code>@Override
  protected void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
      System.err.println("My 2 ctx: " + ctx + " channel: " + ctx.channel());
  }
  </code></pre>
  
  <p>and the output:</p>
  
  <pre><code>My 1 ctx: io.netty.channel.DefaultChannelHandlerContext@ba9340 channel: [id: 0xdfad3a16, /127.0.0.1:60887 =&gt; /127.0.0.1:8090] 
  My 2 ctx: io.netty.channel.DefaultChannelHandlerContext@1551d7f channel: [id: 0xdfad3a16, /127.0.0.1:60887 =&gt; /127.0.0.1:8090]
  </code></pre>
  
  <p>I noticed that the ctx is different but the channel is the same one</p>
  
  <p>So it there any difference between invoke ctx.write() and ctx.channel().write() ?</p>