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