Netty的核心思想
异步和事件驱动
Netty的核心组件
- Channel : 输入输出数据的抽象载体
- Callback :回调,用于事件处理
- Future::异步操作的占位符
- Event和ChannelHandler : 事件和对应的处理逻辑的抽象
Netty客户端/服务器概览
服务器实现重要步骤
- EchoServerHandler实现业务逻辑
- main()方法引导服务器启动
public void start() throws Exception {
final EchoServerHandler serverHandler = new EchoServerHandler();
EventLoopGroup group = new NioEventLoopGroup();
try {
ServerBootstrap b = new ServerBootstrap();
b.group(group)
.channel(NioServerSocketChannel.class)
.localAddress(new InetSocketAddress(port))
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast(serverHandler);
}
});
ChannelFuture f = b.bind().sync();
System.out.println(EchoServer.class.getName() +
" started and listening for connections on " + f.channel().localAddress());
f.channel().closeFuture().sync();
} finally {
group.shutdownGracefully().sync();
}
}