1. 增加模块加载工具,实现游戏业务模块热更新
项目网站:http://www.53hql.com/lightning4j
项目WiKi:http://www.53hql.com/lightning4j/wiki
基本用法
- 在IDEA的project目录下新建一个文件夹例如:conf存放配置文件及log,将源码目录下confFile里的内容拷贝到该文件夹中。
- 修改配置选项为开发者自己的配置
- 在初始化代码中设置配置文件根路径:
ServerInit.getInstance().initConfPath("conf");
- 简历游戏模块工程(new maven module in IntelliJ IDEA)参考项目结构:
……包
|–handler(业务逻辑handler)
|–model(MyBatis使用的数据dao)
|–manager(缓存数据管理)
|–vo(用于映射json的对象) - 使用maven打包该module为jar文件
- 拷贝至confFile里的module目录
- 配置moduleConf.xml
<?xml version="1.0" encoding="UTF-8"?> <handlers> <!--模块名和模块jar文件名对应--> <test> <test><!--handler注册名--> com.hql.test.handler.HandlerTest<!--类名--> </test> <onDisconnect> com.hql.test.handler.DisconnectHandlerTest </onDisconnect> ...... </test> ...... </handlers>
- 启动代码示例:
public class Server { public void run() throws Exception { ServerInit.getInstance().initConfPath("conf"); ServerInit.getInstance().initLog4j(); ServerInit.getInstance().initGameWorkers(); ServerInit.getInstance().initModules(); GameBoss.getInstance().boot(new GameUpProcessor() { @Override public void process(GameUpBuffer buffer) { GameWorkerManager.getInstance().pushDataToWorker(buffer); } }); } public static void main(String[] args) throws Exception { new Server().run(); } }
- 热更新示例
ModuleUtil.getInstance().updateModule("test2");//更新test2模块
后续更新计划
- 性能测试工具
- 分布式支持