- skynet 热更新功能演示, 热更分为已启动的服务的代码逻辑热更, 文件修改后新启动服务的同步更新
- debug.sh 启动后, 会开定时器不断启动新服务,
- 在已启动服务manager_service里有定时器不断调用test函数
- 修改MessageHandler.lua 里的 test函数改变输出内容
- python hotfix.py 会看到输出的改变
原理是 clearcache 清除代码缓存后 清除lua模块缓存 package.loaded[file_path] = nil 对已创建的对象方法进行更新
软件架构说明
depends --skynet引擎已编译好
server --游戏框架common --公用的代码,配置
config --配置文件
proto --pb文件
每个节点里都有一个manager_service 负责节点消息派发与 service管理
- debug.sh
- killall.sh 结束所有skynet进程
- server结尾的文件夹代表一个节点(进程)
- _service结尾的文件夹代表一个服务与其业务集,一个服务相关的逻辑代码放在一个文件夹里
- _service.lua 结尾的lua文件代码一个服务起动入口
- 服务里的逻辑代码以类的形式存在,类文件名以大写字母开头如Command.lua
- 类函数,使用小驼峰名字
- 变量使用小字母加_ 的形式命名, 如 message_name 尽量不要让名字太长.
- 探讨skynet的一种面向对象的开发方式
- 感兴趣的朋友加qq群 373245593 一起学习
- 觉得好可以给个star 鼓励下
- 服务器框架的各个模块的再学习与整理