HomeServer/lualib-src/Server-main/Lib/Tcp/TcpServer.lua

53 lines
1.7 KiB
Lua
Raw Normal View History

2024-11-20 15:41:09 +08:00
local skynet = require "skynet"
local oo = require "Class"
local socket = require "skynet.socket"
local httpd = require "http.httpd"
local sockethelper = require "http.sockethelper"
local urllib = require "http.url"
local table = table
local string = string
local JSON =require "json"
local cmd = require "GameCmd"
local crypt = require "skynet.crypt"
local log = require "Log"
local pb = require "pb"
local errorInfo = require "ErrorInfo"
local serverId = tonumber(skynet.getenv "serverId")
local TcpServer = oo.class()
function TcpServer:Init()
end
function TcpServer:ClusterRecv( c2sData )
local s2cData = {}
s2cData.code = errorInfo.Suc
s2cData.desc = "Suc"
s2cData.cmd = pb.enum("MsgType","CMD_Init")
s2cData.data = assert(pb.encode("InitMsgData", {}))
local msgData = nil
if not c2sData.isConnect then
--断线
if skynet.server.clusterServer:IsGameServer( serverId ) then
skynet.server.gameServer:UserOffline( c2sData.socketId )
end
else
--反序列化,获取子数据
msgData = assert(pb.decode("C2SMsgData", c2sData.data))
c2sData.cmd = msgData.cmd
c2sData.data = msgData.data
if skynet.server.clusterServer:IsCenterServer( serverId ) then
skynet.server.centerServer:TcpRecv( c2sData , s2cData)
elseif skynet.server.clusterServer:IsGameServer( serverId ) then
skynet.server.gameServer:TcpRecv( c2sData , s2cData)
end
s2cData.desc = errorInfo.ErrorMsg[ s2cData.code ] or "暂无消息提示"
end
--序列化包
s2cData = assert(pb.encode("S2CMsgData", s2cData))
return s2cData
end
skynet.server.tcpServer = TcpServer
return TcpServer