介绍
skynet 项目地址
skydet demo 即本项目地址
skynet 是一个轻量级的为在线游戏服务器打造的框架。在使用skynet之前,非常有必要把作者写的skyent说明看一遍。
以上是必看的内容。
agent
agent 用于处理来自客户端的请求。
watchdog
看门狗,主要负责启动agent来执行业务逻辑、处理来自客户端的请求,agent.lua和watchdog.lua都是在应用层写的脚本。
gate & gateserver
gate 是一个网关服务器,需要配合gateserver使用。skynet已经提供了gate.lua和gateserver.lua,我们只需要在watchdog.lua里面调用就可以。
service/gate.lua 是一个实现完整的网关服务器,同时也可以作为 snax.gateserver 的使用范例。examples/watchdog.lua 是一个可以参考的例子,它启动了一个 service/gate.lua 服务,并将处理外部连接的消息转发处理。内容来自skynet wiki
main.lua
skynet 的启动通常是从一个叫main.lua
的文件开始的,然而skynet是怎么知道第一个要加载的文件是这个main.lua
呢?
其实,skynet在逻辑上首先读取的是一个叫config
的文件,也就是启动skynet时传入的文件名。
比如
skynet config/config
skynet会去读取config
目录下的一个叫config
的文件,这个config
文件实质上是一个遵循lua语法
的文件,具体详情细节可以查看 skynet wiki的Config部分。
举个例子
config
文件内容:
start = "main" -- main script
root = "./"
thread = 8
logger = nil
harbor = 1
address = "127.0.0.1:2526"
master = "127.0.0.1:2013"
bootstrap = "snlua bootstrap" -- The service for bootstrap
standalone = "0.0.0.0:2013"
luaservice = root.."service/?.lua;"..root.."test/?.lua;"..root.."examples/?.lua"
lualoader = "lualib/loader.lua"
snax = root.."examples/?.lua;"..root.."test/?.lua"
cpath = root.."cservice/?.so"
内容的第一行中的start
参数的值就是skynet要启动的第一个业务脚本,skynet会从luaservice
所配置的路径中去寻找这个start
参数所指定的文件。
我们通常会在main.lua
里读取config
文件里自定义的一些配置,并启动一些列相应的service
。
拿skynet项目里提供的