From 0c71985f28162bf007df399e576d4fd2144a7126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=A3=8E?= Date: Fri, 7 Sep 2012 11:19:03 +0800 Subject: [PATCH] service manager --- service/service_mgr.lua | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 service/service_mgr.lua 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)