总结概述

结合netty的手册和第一个例子以及相关的实验。总结一部分内容,放在这个博客中。

归纳

  1. 在每个server端都是使用一样的模板代码,根据业务场景配置一下参数。具体的处理逻辑都是写在handler中。
  2. channel的write方法并没有给你发数据,flush之后才会发出。所以正式开发中使用集成方法:writeAndFlush(buf)。
  3. 如果写代码时出现了write方法,netty会自动帮你释放资源,不需要自己释放。
  4. 单纯的读数据就得用最佳实践。finally里面释放资源。
  5. 有读有写的逻辑,也不用释放msg。
  6. 因为写入数据是异步的,并不知道什么时候写完,所以有的业务需要加一个监听。如下:
final ChannelFuture f = ctx.writeAndFlush(time); // (3)
f.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) {
assert f == future;
ctx.close();
}
}); // (4)
  1. 监听如果是关闭通道的话有简写的形式。借此实现长连接、短连接。就是这句话的区别。
f.addListener(ChannelFutureListener.CLOSE);