skynet是为多人在线游戏设计的轻量级服务端框架,使用C+Lua开发。skynet的特点是,使用这个框架,太多数情况下只是用lua写代码,很少用c写,这一定程度上提高了项目的开发效率。lua虽然没有C高效,但开发复杂业务却是非常便捷。不过,skynet网上文档很少,所以我就利用一点时间总结skynet相关内容。
skynet有两种方法热更新lua代码,clearcache和inject,文章分别对这两种方法做说明。(本文作者,csdn 没有开花的树)
clearcache热更新
讲这个前,先说明下skynet代码加载的事情。因为skynet的每个服务都是一个独立的lua虚拟机,对于同一份lua代码,N个服务就要加载lua文件N次,所以,skynet做了优化,代码文件只需要加载一次到内存,其他服务复制这份内存就可以了,省了读取lua文件和解析lua语法的过程。
clearcache 使用很简单,
启动skynet,连接到其控制台:
# nc 127.0.0.1 8000
Welcome to skynet console
clearcache
OK