前者是具體的讀操做,後者是讀完成以後的回調操做ide
private final ChannelFutureListener trafficGenerator = new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) { if (future.isSuccess()) { generateTraffic(); } else { future.cause().printStackTrace(); future.channel().close(); } } };
ctx.writeAndFlush(content.duplicate().retain()).addListener(trafficGenerator);
上面都是官方的例子裏code