当前位置: 首页 > 工具软件 > lightning4j > 使用案例 >

2015/2/13lightning4j更新内容

於宾白
2023-12-01

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模块
    

    后续更新计划

  • 性能测试工具
  • 分布式支持
 类似资料: