diff --git a/service/service_mgr.lua b/service/service_mgr.lua new file mode 100644 index 00000000..a174b3c2 --- /dev/null +++ b/service/service_mgr.lua @@ -0,0 +1,23 @@ +local skynet = require "skynet" + +local service = {} + +local function query(service_name, ...) + local s = service[service_name] + if s == nil then + s = skynet.newservice(service_name, ...) + service[service_name] = s + end + return s +end + +skynet.start(function() + skynet.dispatch("lua", function(session, address, service_name , ...) + local handle = query(service_name, ...) + skynet.ret(skynet.pack(handle)) + end) + skynet.register(".service") + if skynet.getenv "standalone" then + skynet.register("SERVICE") + end +end)