clusterproxy

This commit is contained in:
Cloud Wu
2014-08-14 11:11:01 +08:00
parent 8078d777ab
commit 7e24d46047

27
service/clusterproxy.lua Normal file
View File

@@ -0,0 +1,27 @@
local skynet = require "skynet"
local cluster = require "cluster"
local node, address = ...
skynet.register_protocol {
name = "system",
id = skynet.PTYPE_SYSTEM,
unpack = function (...) return ... end,
}
local forward_map = {
[skynet.PTYPE_LUA] = skynet.PTYPE_SYSTEM,
[skynet.PTYPE_RESPONSE] = skynet.PTYPE_RESPONSE, -- don't free response message
}
skynet.forward_type( forward_map ,function()
local clusterd = skynet.uniqueservice("clusterd")
local n = tonumber(address)
if n then
address = n
end
skynet.dispatch("system", function (session, source, msg, sz)
local m,s = skynet.rawcall(clusterd, "lua", skynet.pack("req", node, address, msg, sz))
skynet.ret(skynet.rawcall(clusterd, "lua", skynet.pack("req", node, address, msg, sz)))
end)
end)