GA封装的客户端服务端通讯函数
依赖项:服务端:powersend.share.lua客户端:更新至20190410及以上版本登录器
二建端自带以上依赖项(请使用最新版)
服务端脚本请从二建端中找出拷贝至服务器,客户端请找GA客服更新
作用:该模块允许客户端与服务端以table的方式来传送数据数据
传输为异步操作(不堵塞) 并且自动裁包组包 操作者无需关心细节问题
服务端例子:(其中Event.Recv.XX中的 XX 可以是任意字符串)
function Event.Recv.CS(player,packet)
if packet == "发送数据1" then
local ret_tbl = {
["age"] = 12,
["sex"] = 1,
}
Protocol.PowerSend(player,"发送数据1异步回传",ret_tbl)
end
end
客户端例子:
Cli.Send("发送数据1").wait["发送数据1异步回传"] = function (tbl)
Cli.MessageBox(tbl["age"])
end
如只要在客户端注册一个接受函数,而不发送任何数据时,可以使用以下写法:
Cli.Send().wait["发送数据1异步回传"] = function (tbl)
Cli.MessageBox(tbl["age"])
end
实用例子:点击按钮,客户端的按钮图档从100000变成120000,由服务端gmsv回传数据控制
客户端:
saveobject = nil;
-- 注册一个窗口打开事件回调
function Event.ViewInit.Test(view)
-- 如果是首次加载
if view.IsInit then
-- 设置以下控件为顶层
view.settop();
-- 往窗口加入一个image控件
view.add(new.image("Test_1"))
return;
end
local object = view.find("Test_1")
object.enable = 1
object.xpos = 10
object.ypos = 10
object.imageID = 100000
object.event = function(object,event)
if event == Cevent.click then
Cli.Send("GETR").wait["RET1"] = function (tbl)
saveobject.imageID = tonumber(tbl["result"])
end
end
end
saveobject = object
end
服务端:
function Event.Recv.CS(player,packet)
if packet == "GETR" then
local ret_tbl = {
["result"] = 120000
}
Protocol.PowerSend(player,"RET1",ret_tbl)
end
end
学习一下 路过看看啊
页:
[1]