| 1234567891011121314151617181920212223242526272829303132333435363738 |
- 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
|