mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-25 04:33:05 +00:00
client message filter
This commit is contained in:
@@ -1,11 +1,24 @@
|
||||
local skynet = require "skynet"
|
||||
local client = ...
|
||||
|
||||
skynet.dispatch(function(msg, sz , session, address)
|
||||
local dispatch_handler = skynet.default_dispatch(function (msg,sz)
|
||||
local message = skynet.tostring(msg,sz)
|
||||
print("command source",address)
|
||||
local result = skynet.call("SIMPLEDB",message)
|
||||
skynet.send(address, result)
|
||||
skynet.ret(result)
|
||||
end)
|
||||
|
||||
local session_id = 0
|
||||
skynet.filter(function (session, address , msg, sz)
|
||||
if address == client then
|
||||
assert(session == 0)
|
||||
print("client message",skynet.tostring(msg,sz))
|
||||
-- It's client, there is no session
|
||||
session_id = session_id + 1
|
||||
session = - session_id
|
||||
else
|
||||
print("skynet message",msg,sz)
|
||||
end
|
||||
dispatch_handler(session,address, msg,sz)
|
||||
end)
|
||||
|
||||
skynet.start(function()
|
||||
|
||||
@@ -11,6 +11,7 @@ function command:open(parm)
|
||||
fd = tonumber(fd)
|
||||
print("agent open",self,string.format("%d %d %s",self,fd,addr))
|
||||
local client = skynet.launch("client",fd)
|
||||
print("client",client)
|
||||
local agent = skynet.launch("snlua","agent",client)
|
||||
print("watchdog launch agent client:",agent,client)
|
||||
if agent then
|
||||
|
||||
Reference in New Issue
Block a user