2015/2/13lightning4j更新内容_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 2015/2/13lightning4j更新内容

2015/2/13lightning4j更新内容

 2015/2/14 9:12:18  leehui1983  程序员俱乐部  我要评论(0)
  • 摘要:1.增加模块加载工具,实现游戏业务模块热更新项目网站:http://www.53hql.com/lightning4j项目WiKi:http://www.53hql.com/lightning4j/wiki基本用法在IDEA的project目录下新建一个文件夹例如:conf存放配置文件及log,将源码目录下confFile里的内容拷贝到该文件夹中。修改配置选项为开发者自己的配置在初始化代码中设置配置文件根路径:ServerInit.getInstance().initConfPath
  • 标签:内容

1. 增加模块加载工具,实现游戏业务模块热更新

项目网站:http://www.53hql.com/lightning4j
项目WiKi:http://www.53hql.com/lightning4j/wiki

基本用法

    class="task-list" style="">
  • 在IDEA的project目录下新建一个文件夹例如:conf存放配置文件及log,将源码目录下confFile里的内容拷贝到该文件夹中。
  • 修改配置选项为开发者自己的配置
  • 在初始化代码中设置配置文件根路径:monospace; vertical-align: baseline; margin: 0px; border: 0px; padding: 0px;">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模块
    

    后续更新计划

  • 性能测试工具
  • 分布式支持
上一篇: 博客建站的几点思考 下一篇: 没有下一篇了!
发表评论
用户名: 匿名