local NetJsonDispatcher = {} local S2C = require("Network/S2C.lua") local jsonConvert = require("Base/json.lua") local networkManager = require("Network/NetworkManager.lua") function NetJsonDispatcher.SendData(msgType, tblData) local jsonConvert = require("Base/json.lua") local message = jsonConvert:encode(tblData) if msgType ~= "HEARTBEAT_REQ" then local _, szTimeFormat = require("Base/Utils.lua"):TimeNow() print("----> C2S: json: message: szTimeFormat:", szTimeFormat, msgType, message) end cast(CS.System.Text.Encoding.UTF8, typeof(CS.System.Text.Encoding)) local bArrayMessage = CS.System.Text.Encoding.UTF8:GetBytes(message) local rpcId = networkManager:SendData(msgType, bArrayMessage, 0, 0) end function NetJsonDispatcher.RecvData(serverMessage) cast(CS.System.Text.Encoding.UTF8, typeof(CS.System.Text.Encoding)) local stream = serverMessage.msgData local szMsgData = CS.System.Text.Encoding.UTF8:GetString(stream:GetBuffer(), stream.Position, stream.Length - stream.Position) local serverProtocol = jsonConvert:decode(szMsgData) local msgType = S2C[serverMessage.msgType] if not msgType then CS.ZLog.Log.Error(string.format("NetworkManager Get callback failed for : %s\n%s" , serverMessage.msgType, serverMessage.msgData)) else msgType(S2C, serverProtocol) end end networkManager:RegisterDispatcher(0, NetJsonDispatcher) return NetJsonDispatcher