简单的自定义服务器

作者: 回忆并快 | 来源:发表于2016-07-16 16:25 被阅读290次

    一个简单的自定义服务器

    1.先写一个启动脚本start.sh
    为了管理方便,我统一把配置放到config目录(这里的后缀名并没有什么大关系)。
    建立一个script目录放逻辑代码,一个service目录放服务器代码。

    # 每次启动前最好都刷下proto,然后再启动skynet
    cd proto && ./genpb.sh && cd ..
    cd ../skynet
    ./skynet ../game/config/game.cfg
    

    2.编辑配置(参考Skynet下面的examples/config)
    在我们的config目录下建立一个game.cfg的文件
    因为我们每次运行服务器都是进入game目录下执行脚本所以我们要以game作为相对目录(../为返回上一层)
    很多参数我们暂时不需要关注,具体看wiki

    -- 这里是因为之前我们的start.sh已经进入了skynet的目录了,所以当前目录为skynet目录
    root = "../game/"
    thread = 8
    logger = nil
    logpath = "."
    harbor = 1
    address = "127.0.0.1:2526"
    master = "127.0.0.1:2013"
    start = "main"  -- main script
    bootstrap = "snlua bootstrap"   -- The service for bootstrap
    standalone = "0.0.0.0:2013"
    -- 这里的路径一定要注意,我们需要用到skynet service下的代码,也用到我们自己service代码,注意每个路径后面要用;来分割
    luaservice = "./lualib/?.lua;".."./service/?.lua;"..root.."script/?.lua;"..root.."service/?.lua;"
    lualoader = "./lualib/loader.lua"
    lua_path = "./lualib/?.lua;"..root.."script/?.lua;"..root.."lualib/?.lua;"
    lua_cpath = "./luaclib/?.so;"..root.."luaclib/?.so;"
    -- preload = "./examples/preload.lua"   -- run preload.lua before every lua service run
    snax = root.."script/?.lua;"
    -- snax_interface_g = "snax_g"
    cpath = "./cservice/?.so;".."./luaclib/?.so;"..root.."luaclib/?.so;"
    -- daemon = "./skynet.pid"
    

    3.编写服务器主函数(参考Skynet下面的examples/main)
    建立一个main.lua放到service目录,同时也要把examples/watchdog这个文件拷贝过去(这个顾名思义就是看门狗的意思,每次连接都需要通过Ta来进行消息分发),里面内容跟examples下的main差不多,我主要是把一些不需要的给干掉了。

    local skynet = require "skynet"
    local max_client = 64
    skynet.start(function()
        skynet.error("Server start")
        local watchdog = skynet.newservice("watchdog")
        skynet.call(watchdog, "lua", "start", {
            port = 8888,
            maxclient = max_client,
            nodelay = true,
        })
        skynet.error("Watchdog listen on", 8888)
        skynet.exit()
    end)
    

    根据上面的代码我们很容易知道,这个服务端的本地访问地址是127.0.0.1:8888。
    现在应该就可以启动一下,看下我们之前的修改有没问题~
    cd 到server/game/
    sudo ./start.sh

    成功运行
    这里我们不需要关注太多,底层相关的和配置相关的的问题,我们要做得的仅仅是把这个服务器搭起来就够了,然后可以投入开发,云风开发这个引擎,相当一部分想法应该也是让开发者可以无需太关注底层,而进行服务端开发。
    这次的源码:
    http://pan.baidu.com/s/1boGrZcV
    建立在上一篇文章的基础上。
    直接覆盖game文件夹就好。

    相关文章

      网友评论

        本文标题:简单的自定义服务器

        本文链接:https://www.haomeiwen.com/subject/wbrujttx.html