Skynet整体架构
Skynet目录结构
- 3rd:第三方代码,主要生成一些给lua用的so动态库
- lualib:lua库
- lualib-src => luaclib:给lua用的c库
- luaclib:部分lualib-src编译之后的.so文件(应该可以通过调整编译过程将源文件全部编译出来)
- service:lua服务
- service-src => cservice:c服务
- cservice:service-src编译后的.so文件
- skynet-src => skynet:主程序
- Makefile
- client-src => client:测试客户端
- examples:示例工程
Skynet运行机制
- skynet每个服务最重要的是设置一个
callback
函数,服务向另一个服务发消息都会压入这个服务的消息队列,等待_worker线程从全局队列取出一个服务的消息队列,然后再从这个消息队列取出一个消息使用这个服务的callback处理 - 游戏服务器一般会启动一个socket服务教给gate.so管理,socket服务可以接受外部msg传递到内部服务来处理。