public void OnMessage(int iChunkType, int iProtocolID, int iCommunicateID, byte[] messageBuff, int start, int len) { ProtocolDeserializer protocolDeserializer = m_ProtocolDeserializers[iProtocolID]; IMessage message = protocolDeserializer(messageBuff, start, len); if (NetHelper.IsValidCommunicateID(iCommunicateID) && NetHelper.IsResponseCommunicateID(iCommunicateID)) { m_WaitCompleteTasks.OnComplete(iCommunicateID, ref message); } else { if (iProtocolID >= 0 && iProtocolID < RpcServiceHelper.ProtoCount) { ProtocolHandler h = m_ProtocolHandlers[iProtocolID]; if (NetHelper.IsValidCommunicateID(iCommunicateID)) { iCommunicateID = NetHelper.ConvertToResponseCommunicateID(iCommunicateID); } h(iCommunicateID, message); } } }
public void AddProtocolDeserializer(int iProtoID, ProtocolDeserializer deserializer) { m_ProtocolDeserializers[iProtoID] = deserializer; }