skynet小型MMO示例源码分析(一)(main.lua)

看完skynet文档,尝试阅读分析下示例,欢迎指正
源码下载地址: Git地址git

首先从service/main.lua开始github

local skynet = require "skynet"

local config = require "config.system"
local login_config = require "config.loginserver"
local game_config = require "config.gameserver"

skynet.start(function()
    -- 启动debug_console控制台服务
    skynet.newservice ("debug_console", config.debug_port)
    -- 启动protod服务
    skynet.newservice ("protod")
    -- 启动database服务
    -- 默认情况下uniquesservice是不跨节点的,若是须要全局惟一的服务,在参数前加个true
    -- skynet.uniqueservice为告终局系统中一类事务只需一个服务的状况
    -- 若是同名服务已启动,则返回前一次启动的服务的地址
    -- 可使用skynet.queryservice来查询已有服务,若是不存在,则一直阻塞到服务启动为止
    skynet.uniqueservice ("database")

    -- 启动loginserver服务
    local loginserver = skynet.newservice ("loginserver")
    -- 调用loginserver服务中的open接口, 参数login_config配置
    skynet.call (loginserver, "lua", "open", login_config)  

    -- 启动gamed服务
    local gamed = skynet.newservice ("gamed", loginserver)
    -- 调用gamed服务中的open接口, 参数game_config配置
    skynet.call (gamed, "lua", "open", game_config)
end)