server-client demo
server.lua
local skynet = require "skynet"
local function handle_message(message)
-- 处理消息,可以在这里做一些业务处理
skynet.error("Received message: " .. message.name, message.age)
return "this is : " .. "11111111"
end
local function server()
skynet.dispatch("lua", function(session, source, message)
skynet.error("session: ", session, source)
local response = handle_message(message)
skynet.error(response)
skynet.retpack(response)
end)
end
skynet.start(function()
skynet.error("Server is startup")
server()
end)
client.lua
local skynet = require "skynet"
local function client()
local server_address = skynet.queryservice("server") -- 获取服务端地址
if server_address then
local message = {name = "hello", age = 10}
-- local message = "send msg"
-- 发送消息给服务端
local response = skynet.call(server_address, "lua", message)
-- 使用 skynet.unpack 进行解包
local unpacked_response = skynet.unpack(response)
-- 输出服务端的响应
skynet.error("client get Response: " .. response)
else
skynet.error("!!! server address is nil !!!")
end
skynet.exit()
end
skynet.start(function()
client()
end)
main.lua
local skynet = require "skynet"
skynet.start(function()
skynet.error("Server is starting...")
skynet.uniqueservice("server") -- 启动 sender,它会启动 receiver
skynet.error("client is starting...")
skynet.newservice("client")
end)
config
harbor = 0
thread = 12
logger = nil
logpath = "."
bootstrap = "snlua bootstrap"
start = "main"
luaservice = "./service/?.lua;./demo3/?.lua;./lualib/?.lua"
lua_path = "./service/?.lua;./demo3/?.lua;./lualib/?.lua"
lua_cpath = "./luaclib/?.so"
cpath = "./cservice/?.so"
执行代码及输出:
Last updated