skynet 学习之旅

来源:互联网 发布:房屋格局设计软件 编辑:程序博客网 时间:2024/06/18 18:17

学习云风的skynet也有很久了,但是一直无法得心应手,我以前没做过服务端,看C代码事没什么难度,但是整个架构会把我绕的很晕,也在群里说过自己的想法,希望有应对新接触服务端的入门文档,但是没办法,条件限制如此,我们还是得自己去看源代码,这里记录一下我学习过程中遇到的一些问题。


当我看到require "skynet.core"的时候有点疑惑,因为我并没有找到这样一个lua文件,但是找不到就无法继续学习下去,所以最后在C语言部分的代码中找到了luaopen_skynet_core,这就是skynet.core的C语言实现了,可以看一下其中包含的一些函数:

intluaopen_skynet_core(lua_State *L) {luaL_checkversion(L);luaL_Reg l[] = {{ "send" , lsend },{ "genid", lgenid },{ "redirect", lredirect },{ "command" , lcommand },{ "intcommand", lintcommand },{ "error", lerror },{ "tostring", ltostring },{ "harbor", lharbor },{ "pack", luaseri_pack },{ "unpack", luaseri_unpack },{ "packstring", lpackstring },{ "trash" , ltrash },{ "callback", lcallback },{ "now", lnow },{ NULL, NULL },};luaL_newlibtable(L, l);lua_getfield(L, LUA_REGISTRYINDEX, "skynet_context");struct skynet_context *ctx = lua_touserdata(L,-1);if (ctx == NULL) {return luaL_error(L, "Init skynet context first");}luaL_setfuncs(L,l,1);return 1;}



0 0
原创粉丝点击