1. 前言 本节主要讲解服务端主启动类 ServerBootstrap 的核心 API 的使用 。
2. ServerBootstrap 流程 ServerBootstrap 的用法基本上都是固定的,一般对于新接触 Netty 的同学来说,会觉得这些模板代码比较多,难以理解 。我们主要记住几个核心配置即可 。
- 指定线程模型: 通过.group(bossGroup, workerGroup) 给引导类配置两大线程组,这个引导类的线程模型也就定型了 。其中 bossGroup 表示监听端口,accept 新连接的线程组;workerGroup 表示处理每一条连接的数据读写的线程组;指定 IO 模型: 通过.channel(NioServerSocketChannel.class) 来指定 NIO 模型 。如果指定 IO 模型为 BIO,那么这里配置上 OioServerSocketChannel.class 类型即可,通常都是使用 NIO,因为 Netty 的优势就在于 NIO;指定处理逻辑: 通过 childHandler () 方法,给这个引导类创建一个 ChannelInitializer,这里主要就是定义后续每条连接的数据读写,业务处理逻辑;绑定端口号: 调用 bind (80),端口号自定义,不要和其他应用的端口号有冲突即可 。
说明:客户端和服务端连接之后,会维持一个 Channel 通道,可以给其指定逻辑处理器和属性配置;当然,服务端启动的时候它也是一个特殊的 Channel 通道 。在开发当中,需要我们去自定义的方法主要是 childHandler () 和 childAttr () 这两个 。childHandler () 用来绑定业务逻辑器,childAttr () 用来设置 Channel 属性 。比如:绑定用户身份信息 。其它方法的使用相对固定,了解即可 。
4. 核心方法详解 4.1 bind() bind () 主要用来绑定本地端口号 。
实例:
ChannelFuture future=serverBootstrap.bind(80);future.addListener(new GenericFutureListener>() {public void operatio
猜你喜欢
- 教育部考试中心托福网考在线报名
- 教师资格证为什么要注册?
- 可以用手机注册教师资格证吗?
- 教师资格证不注册怎么办?
- 中国移动通话详单查询显示什么
- 京东后台商家登录入口在哪里?怎么上传商品?
- 如何进入微信公众平台授权登录界面
- 一部手机可以注册几个陌陌号
- 江苏二级建造师追加注册有关问
- 一级消防工程师考出需要注册么 这里有具体介绍
