![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
netty
netty
.net core game
致力于.net core全栈游戏服务器开发
展开
-
netty中心跳组件IdleStateHandler的使用必须有
后面经过定位发现是: 手机在飞行模式下,其实是触发不了channelActive等操作的,Channel的isOpen和isActive也都是true。这2天上线,运维通过jvm进程面板发现:人数一直上涨趋势,可是我们并没有一直导量呀!此时,其实是网络消息已经不通了,所以:需要结合心跳检测去剔除客户端。开始我们没有加入心跳组件,希望断开连接都是客户端自己断开的。原创 2024-05-30 11:25:07 · 74 阅读 · 0 评论 -
【何时调用ByteBuf的release的方法总结】
我们可以把这个ByteBuf想象成一把火炬,不断地传递到下一个Handler链,我们一般是在Decoder解码出业务实体后(GameMessage),ByteBuf其实就没用了,也就是在Decoder中往往是最后一次使用,所以此时应该给release掉。堆上的内存,则直接释放,直接内存,则是被回收。这和c++的内存管理机制其实是一样的。谁最后使用谁负责释放。原创 2024-05-22 10:15:33 · 117 阅读 · 0 评论 -
netty NIO的发展史
那么这个selector到底是啥呢?我们下载openjdk的源码。多路复用器Selector,服务器使用select监听。客户端连接上后,则重新注册到selector上,读写。2)v2 // 多路复用器的引入。原创 2024-01-16 16:11:32 · 359 阅读 · 0 评论 -
【图解异步IO】线程之间的交互
图解异步IO原创 2022-04-12 09:44:56 · 81 阅读 · 0 评论 -
【WebSocket服务器】 1.服务器netty 2.客户端creator 3.fastjson通讯协议
1.客户端 start() { // init logic this.label.string = this.text; let socket = new WebSocket("ws://localhost:6080/ws"); // H5标准,底层做好了; socket.binaryType = "arraybuffer"; socket.onopen = function () { cc原创 2021-07-25 01:08:03 · 228 阅读 · 0 评论 -
【内嵌一个简单的Http服务器】 1.客户端用postman测试
|-- HttpServer.java //服务器类 |-- annotations | |-- HttpHandler.java //注解 | ...原创 2021-07-13 23:42:32 · 1090 阅读 · 1 评论 -
【netty源码编译运行】1.分支:4.1 2.基于jdk1.8
1)Get from VCS2)输入git仓库地址3)初始化下maven工程mvn install -Dmaven.test.skip=true4)提示Function语法报错,则根据提示set一下java编译器api即可5)echo工程就要可以直接运行了原创 2021-07-16 23:28:47 · 282 阅读 · 0 评论 -
工作中用的: 解码器:LengthFiledBasedFrameDecoder+ChannelInboundHandlerAdapter 编码器:MessageToByteEncoder
1)Server.javap.addLast(new IdleStateHandler(5*60,5*60,0), new Decoder(), new Encoder(), new GatewayHandler())2)Decoder.java // 解码器,收到客户端消息时处理class Decoder extends LengthFieldBasedFrameDecoder { public Decoder(){ super(Integer.MAX_VALU原创 2022-01-25 16:55:50 · 378 阅读 · 0 评论