diff --git a/src/main/java/com/corundumstudio/socketio/demo/SimpleServer.java b/src/main/java/com/corundumstudio/socketio/demo/SimpleServer.java index 0740ebb..bdbdf39 100644 --- a/src/main/java/com/corundumstudio/socketio/demo/SimpleServer.java +++ b/src/main/java/com/corundumstudio/socketio/demo/SimpleServer.java @@ -14,7 +14,19 @@ import io.netty.channel.socket.nio.NioServerSocketChannel; * @copyright Wonhigh Information Technology (Shenzhen) Co.,Ltd. */ public class SimpleServer { - + /** + * netty核心组件 + * + * channel + * channelConfig + * channelId + * Unsafe + * Pipeline + * ChannelHander + * + * @param args + * @throws Exception + */ public static void main(String[] args) throws Exception { EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGroup workerGroup = new NioEventLoopGroup(); @@ -25,7 +37,14 @@ public class SimpleServer { * 通过给它设置一系列参数来绑定端口启动服务 */ ServerBootstrap b = new ServerBootstrap(); + /** + * bossGroup负责接收请求 + * workerGroup负责处理请求 + */ b.group(bossGroup, workerGroup) + //最终调用的是ReflectiveChannelFactory.newChannel() + //通过反射创建对象 NioServerSocketChannel + //最终创建channel相当于调用默认构造函数new出一个NioServerSocketChannel对象 .channel(NioServerSocketChannel.class) .handler(new SimpleServerHandler()) .childHandler(new ChannelInitializer() { @@ -34,6 +53,10 @@ public class SimpleServer { } }); + /** + * bind方法第一步通过反射new一个NioServerSocketChannel对象,并且在 + * new的过程中创建一系列核心组件 + */ ChannelFuture f = b.bind(8888).sync(); f.channel().closeFuture().sync();