| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- local JsonProtoHelper = class("JsonProtoHelper")
- local Message = require( "network/jsonproto/message")
- local slen = string.len
- function JsonProtoHelper:ctor()
- self.handlers = {}
- end
- function JsonProtoHelper:init()
- local networkCtl = LuaNetworkController:Inst()
- local msgType = global.MsgType
- LuaRegisterMsgHandler( msgType.MSG_SC_JSON_PROTO_HELPER_RESPONSE, handler( self, self.handle_JSON_MESSAGE ) )
- end
- function JsonProtoHelper:handle_JSON_MESSAGE( msg )
- local len = msg:GetDataLength()
- if len <= 0 then
- print( "handle_JSON_MESSAGE, len <= 0!" )
- return nil
- end
- local ServerTimeProxy = global.Facade:retrieveProxy(global.ProxyTable.ServerTimeProxy)
- if ServerTimeProxy:IsKfState() then
- return nil
- end
- local header = msg:GetHeader()
- local model = header.recog
- local data = msg:GetData()
- local jsonStr = data:ReadString( len )
- local json_msg = Message.new()
- -- print("json proto event", model, jsonStr)
- if not json_msg:load( jsonStr, header ) then
- print( "json message error", "len:" .. tostring( len ) .. jsonStr )
- return nil
- end
- self:OnMessage(model, json_msg )
- end
- function JsonProtoHelper:RegisterJsonHandler( model, handler )
- self.handlers[model] = handler
- end
- function JsonProtoHelper:OnMessage(model, json_msg )
- local action = json_msg:getAction()
- local tmpStr = "model:" .. tostring( model )
- --跨服状态屏蔽
- local ServerTimeProxy = global.Facade:retrieveProxy(global.ProxyTable.ServerTimeProxy)
- if ServerTimeProxy:IsKfState() then
- return nil
- end
- if not action then
- print( "JsonProtoHelper:OnMessage, Invaild arg, " .. tmpStr )
- return nil
- end
- local handler = self.handlers[model]
- if not handler or not handler[action] then
- print( "JsonProtoHelper:OnMessage, Invaild handler, " .. tmpStr )
- return nil
- end
- local callback = handler[action]
- callback( handler, json_msg:getData() )
- end
- function JsonProtoHelper:SendMsg(model, script, action, data, ex1, ex2, ex3 )
- --跨服状态屏蔽
- local ServerTimeProxy = global.Facade:retrieveProxy(global.ProxyTable.ServerTimeProxy)
- if ServerTimeProxy:IsKfState() then
- return nil
- end
-
- if not model or not script then
- print( "JsonProtoHelper:SendMsg, Invaild arg, ", model, script )
- return nil
- end
- local msg = Message.new(action, data, ex1, ex2, ex3)
- local jsonStr = msg:dump()
- LuaSendMsg( global.MsgType.MSG_CS_JSON_PROTO_HELPER_REQUEST, model, script, 0, 0, jsonStr, slen( jsonStr ) )
- end
- return JsonProtoHelper
|