springboot+netty开发简易式游戏:netty基础

需要了解的有,selector、channel、handler、pipeline、socket、eventLoopGroup、bootstrap、channelFuture、channelInitializer、inbound、channelHandlerContext、textWebSocketFrame、channelGroup,还有很多,不过我们用不到。我写的只是给你们一个认知,知道这是个什么玩意,我们才能去了解它。

概念

1. selector

Selector 一般称 为选择器 ,也可以翻译为 多路复用器 。它是Java NIO核心组件中的一个,用于检查一个或多个NIO Channel(通道)的状态是否处于可读、可写。如此可以实现单线程管理多个channels,也就是可以管理多个网络链接。 相比使用多线程,避免了线程上下文切换带来的开销。

可以理解为一个厨房,服务员就问这些个颠勺的,好了没,好了没,该上菜啦,一会又说,又有点菜的了,谁不忙赶快做下。

2. channel

channel 是一个通道,用于连接字节缓冲区 buf 和另一端的实体,这个实例可以是 socket,也可以是 file,在 nio 网络编程模型中,服务端和客户端进行 io 数据交互(得到彼此推送的信息)的媒介就是 channel

你可以理解为一根电话线,两端各有一个人,A说:我给你一个小a;B说:我收到了,听着不错,我也给你一个小b;A说:我不要;B:。。。;

3. pipeline

pipeline 是一个管道,直观上理解就是这样的。

4. handler

应该叫 channelHandler,就是传输数据的处理工具,包括协议解析,编解码,合并块等。

pipeline 比作一个走廊,handler 比作一个关卡,数据比作一个人。

handler1:小伙子长得不错啊,脑门盖个章就能过去了。

handler2:哎呦,脑门有章,脸上画个圈就能过去了。

handler..n:呵,花花绿绿的,这是你的核酸证明,可以过去了。

5. socket

这个就不解释了。

6. eventLoopGroup

eventLoop 是一个 IO 线程,eventLoopGroup 是一组 eventLoop 的抽象。在 netty 服务器端编程中我们需要 BossEventLoopGroup 和 WorkerEventLoopGroup 两个 eventLoopGroup 来进行工作。

BossEventLoopGroup 通常是一个单线程的 EventLoopEventLoop 维护着一个注册了 ServerSocketChannel Selector 实例,EventLoop 的实现涵盖 io 事件的分离,和分发。

通常 BossEventLoopGroup 的线程数默认为 1,WorkerEventLoopGroup 的线程数默认为cpu核数的2倍。

7. bootstrap

辅助配置 eventloopGroup 启动,添加一些必要的参数。

8. channelFuture

netty 里面的 io 操作全部是异步的。这意味着,io 操作会立即返回,但是在调用结束时,无法保证 io 操作已完成。取而代之,将会返回给你一个 channelFuture 实例,提供 io 操作的结果信息或状态

9. channelInitializer

通道初始化器 channelInitializer 实际上为 inbound 通道处理器,主要目的是为程序员提供了一个简单的工具,用于在某个 channel 注册到 eventLoop 后,对这个 channel 执行一些初始化操作。

10. inbound

入站,对应出站 outbound

11. channelHandlerContext

channelHandler 添加到 channelPipeline 时会创建一个实例,就是 channelHandlerContext

通过 channelHandlerContext 实现对 channel 的访问和使用。

12. textWebSocketFrame

 websocket 协议的定义,就是协议的内容、属性等都可以通过这个类设置和获取。

13. channelGroup

 就是一个 channel 集合,用于消息的广播。

其他

像reactor模式、nio、aio等,面试爱问的东西,大家自己去看下还是很有必要的。

面试造火箭、工作拧螺丝!!!

 

返回目录

上一篇:用户后台开发

下一篇:netty后台开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值