10 Mayıs 2018 Perşembe

Netty

ChannelHandlerContext Sınıfı
Giriş
Açıklaması şöyle.
ChannelHandlerContext is useful when you want to modify the pipeline dynamically, fire events up and down the pipeline etc. If you don't need these, you can just use Channel
channel metodu
Örnek
Şöyle yaparız
Channel channel = ctx.channel();
writeAndFlush metodu
Bu çağrı ile Channel.writeAndFlush() farklıdır. Bu çağrı tüm pipeline'ı dolaşmayabilir. ChannelHandler'dan önceki encoder'ları dolaşır.

Asenkron bir çağrıdır. ChannelFuture nesnesi döner.
Örnek
Şöyle yaparız.
ChannelHandlerContext ctx = ...;

String str = "...";
ChannelFuture channelFuture = ctx.writeAndFlush(str);

channelFuture.addListener(future -> {
  if (future.isSuccess()) {...}
  else {...}
  ctx.close();
});
Örnek
Çağrı bitince bir işlem daha yapmak için şöyle yaparız.
ctx.writeAndFlush("...")
  .addListener(ChannelFutureListener.CLOSE);

ChannelPromise Sınıfı
addListener metodu
Şöyle yaparız.
ChannelPromise promise = c.newPromise();
promise.addListener(new ChannelFutureListener() {
  @Override
  public void operationComplete(ChannelFuture f) {
    System.err.println("<TCPIn: promise write operationComplete.");
    if (!f.isSuccess()) {
      System.err.println("<TCPIn[writting]: promise write ERROR:");
      f.cause().printStackTrace();
      f.channel().close();
    }
  }
});
channel.writeAndFlush(buf,promise);
ChunkedFile Sınıfı
Giriş
Açıklaması şöyle.
You almost never need to close the ChunkedInput yourself, since you will normally have a ChunkedWriteHandler in the pipeline which will close it for you after the last chunk is written.
ChunkedInput arayüzünden kalıtır.
constructor - File
Şöyle yaparız.
ctx.writeAndFlush(new ChunkedFile(new File(...));
constructor - RandomAccessFile + offset + length+ chunkSize
Şöyle yaparız.
ctx.writeAndFlush(new HttpChunkedInput(new ChunkedFile(raf, 0, fileLength, 8192)),
  ctx.newProgressivePromise());

Hiç yorum yok:

Yorum Gönder