当前位置:首页 > 服务端 > netty获取玩家chanel

netty获取玩家chanel

2022年11月09日 10:41:08服务端10

在JDK中就有Channel的概念了. 数据的读写都要通过Channel进行. 既然Netty是封装了JDK, 同样它也有自己的Channel. 一个是服务端Chanel(NioServerSocketChannel),另一个是客户端Channel(NioSocketChannel).

NioServerSocketChannel负责监听客户端的Accpet事件,当发生此事件时.那么它什么时候?或者在哪里知道有Accept事件呢?在之前的文章中我们知道,每一个Channel都和一个NioEventLoop关联,NioServerSocketChannel也和一个NioEventLoop关联.而NioEventLoop封装了一个IO Thread,由这个线程去监听Accept事件.

NioEventLoop主要由三个过程构成. 创建-启动-执行. 执行的环节是个无限循环.当IO Thread监听到有Accept事件后, 会调用JDK底层accept()方法获取到这个连接, 然后再封装成Netty自己的NioSocketChannel.这个就是对应的客户端Channel.

每一个Channel都与一个Pipeline关联, 在创建Channel的时候也会创建出来一个与之关联的Pipeline. Pipeline通过链表的方式将用户自定义的处理器Handler放在Pipeline中, 当Channel中有数据时, 就会由关联的Pipeline进行处理, 更具体说, 是由里面的每个Handler进行处理.

NioServerSocketChannel关联的Pipeline有一个默认的Handler,即ServerBootstrapAcceptor.它也是一个Handler.

pipeline.addLast(new ServerBootstrapAcceptor(ch, currentChildGroup, currentChildHandler, currentChildOptions, currentChildAttrs));

从名字中我们可以看出来,它和接收客户端连接有关.没错, 上面我们也说了, 当客户端NioSocketChannel被创建出来之后, 还没有结束, 因为单单的创建出来NioSocketChannel并没有多少卵用. 后续流程就会交给这个ServerBootstrapAcceptor进行处理.那么它又处理什么呢?主要包括初始化NioSocketChannel,以及将其注册到NioEventLoop,而这个NioEventLoop肯定和NioServerSocketChannel关联的那个NioEventLoop不是同一个.

NioSocketChannel负责数据的读写.

作者:weixin_39612677
来源链接:https://blog.csdn.net/weixin_39612677/article/details/111815815

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/68704.html

标签: Netty
分享给朋友:

“netty获取玩家chanel” 的相关文章

【面试】netty面试题总结

【面试】netty面试题总结

什么是Reactor线程模型? 一种事件驱动处理模型,类似于多路复用IO模型,包括三种角色:Reactor、Acceptor和Handler。Reactor用来监听事件,包括:连接建立、读就绪、写就绪等。然后针对监听到的不同事件,将它们分发给对应的线程去处理。其中accep...

netty实现http客户端请求远程http服务

netty实现http客户端请求远程http服务

    一般http请求,我们会使用httpclient来实现连接池方式的连接,根据请求的类型,封装get,post等请求,设置参数,设置请求头,调用方法,发送请求之后等待请求返回结果,根据结果解析出我们需要的数据。netty也可以实现httpclient类似...

springboot整合netty(二)

springboot整合netty(二)

目录 前言 正文 代码 1. 新建一个springboot项目,在pom文件中添加netty依赖: 2.新建netty服务 3.netty调用...

java高并发实战Netty+协程(Fiber)|系列1|事件驱动模式和零拷贝

java高并发实战Netty+协程(Fiber)|系列1|事件驱动模式和零拷贝

今天开始写一些高并发实战系列。 本系列主要讲两大主流框架: Netty和Quasar(java纤程库) 先介绍netty吧,netty是业界比较成熟的高性能异步NIO框架。 简单来说,它就是对NIO2的封装,但提供了更好用,bug更少的API。 为什么ne...

Java与Netty实现高性能高并发

Java 与 Netty 实现高性能高并发 作者:weixin_33775582 来源链接:https://blog.csdn.net/weixin_33775582/article/details/86361349...

netty在dubbo中的应用

netty在dubbo中的应用

netty在dubbo中的应用 dubbo的底层通信是利用netty来实现的,出于好奇是如何实现的,把发现的过程记录一下。 首先down下来dubbo的源码,里面包含一个模块dubbo-demo,包含了dubbo-demo-provider和dubbo-demo-co...

Netty通过Nginx配置 wss 协议访问(实践可行)

先写个比较简单的,后面再写一篇Vue + springboot +netty  Netty在互联网以及物联网公司用的很多,底层走的还是 websocket协议,好处很多,就不一一列了,相关的文章很多,大家可以搜下; 在实际开发应用中,基本上都是采用前后端分离...

Java异步NIO框架Netty实现高性能高并发

Java异步NIO框架Netty实现高性能高并发

原文地址:http://blog.csdn.net/opengl_es/article/details/40979371?utm_source=tuicool&utm_medium=referral 【读后感】 不知道这是什么节奏,也许...

Android使用Netty网络框架实践(客户端、服务端)

Android使用Netty网络框架实践(客户端、服务端) 使用开发工具为Android Studio 1、配置build.gradle文件 build.gradle文件的dependencies标签下添加Netty引用 depe...

Netty实现心跳检测机制

Netty实现心跳检测机制

1 Server端 import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; i...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。