Improve cluster package module

This commit is contained in:
Cloud Wu
2018-04-14 18:14:44 +08:00
committed by 云风
parent 7304a990cb
commit eb8a2b5e65
3 changed files with 56 additions and 16 deletions

View File

@@ -11,18 +11,17 @@ fd = tonumber(fd)
local large_request = {}
local register_name = {}
local function dispatch_request(_,_,addr, session, msg, padding, is_push)
local sz
local function dispatch_request(_,_,addr, session, msg, sz, padding, is_push)
if padding then
local req = large_request[session] or { addr = addr , is_push = is_push }
large_request[session] = req
table.insert(req, msg)
cluster.append(req, msg, sz)
return
else
local req = large_request[session]
if req then
large_request[session] = nil
table.insert(req, msg)
cluster.append(req, msg, sz)
msg,sz = cluster.concat(req)
addr = req.addr
is_push = req.is_push
@@ -36,6 +35,7 @@ local function dispatch_request(_,_,addr, session, msg, padding, is_push)
local ok, response
if addr == 0 then
local name = skynet.unpack(msg, sz)
skynet.trash(msg, sz)
local addr = register_name[name]
if addr == nil then
addr = skynet.call(clusterd, "lua", "queryname", name)