mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-22 02:53:09 +00:00
fix api for filter
This commit is contained in:
@@ -103,7 +103,7 @@ function skynet.ret(...)
|
||||
coroutine.yield("RETURN", ...)
|
||||
end
|
||||
|
||||
function skynet.default_dispatch(f)
|
||||
local function default_dispatch(f)
|
||||
return function(session, address , msg, sz)
|
||||
if session <= 0 then
|
||||
session = - session
|
||||
@@ -121,10 +121,15 @@ function skynet.default_dispatch(f)
|
||||
end
|
||||
|
||||
function skynet.dispatch(f)
|
||||
c.callback(skynet.default_dispatch(f))
|
||||
c.callback(default_dispatch(f))
|
||||
end
|
||||
|
||||
skynet.filter = assert(c.callback)
|
||||
function skynet.filter(filter, f)
|
||||
local func = default_dispatch(f)
|
||||
c.callback(function (...)
|
||||
func(filter(...))
|
||||
end)
|
||||
end
|
||||
|
||||
function skynet.start(f)
|
||||
local session = c.command("TIMEOUT","0")
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
local skynet = require "skynet"
|
||||
local client = ...
|
||||
|
||||
local dispatch_handler = skynet.default_dispatch(function (msg,sz)
|
||||
local message = skynet.tostring(msg,sz)
|
||||
local result = skynet.call("SIMPLEDB",message)
|
||||
skynet.ret(result)
|
||||
end)
|
||||
|
||||
local session_id = 0
|
||||
skynet.filter(function (session, address , msg, sz)
|
||||
if address == client then
|
||||
@@ -18,7 +12,11 @@ skynet.filter(function (session, address , msg, sz)
|
||||
else
|
||||
print("skynet message",msg,sz)
|
||||
end
|
||||
dispatch_handler(session,address, msg,sz)
|
||||
return session, address , msg, sz
|
||||
end, function (msg,sz)
|
||||
local message = skynet.tostring(msg,sz)
|
||||
local result = skynet.call("SIMPLEDB",message)
|
||||
skynet.ret(result)
|
||||
end)
|
||||
|
||||
skynet.start(function()
|
||||
|
||||
Reference in New Issue
Block a user