![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
文章平均质量分 62
qq_43409811
这个作者很懒,什么都没留下…
展开
-
服务器的单线程以及多线程读写数据库
herostory3 添加了以下几种功能1.在moveTo上添加fromX,fromY2.解决了 自己刷新,其他用户也回归原点的问题(正常应该沿着原本的路线走)3.单线程解决 血量可能因为并发出错4.添加登录问题那么为什么需要使用服务器单线程呢?由图就可以知道,默认netty就是使用多线程执行的,如果执行某些业务的话,那么我们需要如何保证 数据的线程安全问题,此时只能使用单线程了。那么为什么后面又需要使用多线程呢?比如用户量一多,单线程执行的就比较慢了,我们就可以使用这种多线程异步的方式原创 2022-01-09 15:42:48 · 1167 阅读 · 0 评论 -
Netty 游戏开发 自动注入handler以及通过Javassist提高反射效率
通过路径扫描,扫描出该包或子包中标有@CmdHandler注解的类,然后通过反射,将其实例化后缓存。try { Set<Class> classes = ScanPackageUtil.ScanPackage("org.tinygame.herostory2", CmdHandler.class); if(classes == null){ logger.error("自动添加handler扫描包失败");原创 2022-01-04 10:07:09 · 2686 阅读 · 0 评论 -
Netty 游戏开发 -重构 -设计模式实战
先来看几段代码从 解码-> 处理 -> 编码,你会发现我们使用了很多的if或者case,尤其是这个handler处理这一步代码量非常多,还是多功能的耦合在一起,非常不利于业务的拓展以及维护。略懂设计模式的应该都懂,需要使用设计模式中的工厂模式来优化。创建对应的工厂,使用hashmap集合来存储编码器和解码器工厂(消息编码工厂)Handler处理器工厂需要获取的话直接使用 map.get来获取对应的value,看这个handlerMap,每个命令需要执行的具体业务就交给一个原创 2021-12-29 16:50:03 · 1718 阅读 · 0 评论 -
Netty入门之游戏开发 Protobuf消息应用
首先来看看需要完成的游戏效果,两个客户端都可以移动,其他客户端也实时可见,刷新那一方刷新两个英雄都回归原点(bug),另一方还在连接的那一方正常。网页浏览地址http://cdn0001.afrxvk.cn/hero_story/demo/step010/index.html?serverAddr=127.0.0.1:11234&userId=2GameMsgProtocol.protosyntax = "proto3";package msg;option java_packag原创 2021-12-27 17:43:12 · 1764 阅读 · 0 评论 -
Reactor主从模型以及netty之ChannelInitializer源码分析
fd原创 2021-06-18 19:20:19 · 157 阅读 · 0 评论