client message filter

This commit is contained in:
云风
2012-08-10 10:46:50 +08:00
parent c958a99b35
commit f57e98205d
5 changed files with 38 additions and 14 deletions

View File

@@ -103,8 +103,8 @@ function skynet.ret(...)
coroutine.yield("RETURN", ...)
end
function skynet.dispatch(f)
c.callback(function(session, address , msg, sz)
function skynet.default_dispatch(f)
return function(session, address , msg, sz)
if session <= 0 then
session = - session
co = coroutine.create(f)
@@ -117,9 +117,15 @@ function skynet.dispatch(f)
session_id_coroutine[session] = nil
suspend(co, coroutine.resume(co, msg, sz))
end
end)
end
end
function skynet.dispatch(f)
c.callback(skynet.default_dispatch(f))
end
skynet.filter = assert(c.callback)
function skynet.start(f)
local session = c.command("TIMEOUT","0")
local co = coroutine.create(