public static IRequest Serilize(byte[] rawRequest) { IRequest request; if (rawRequest.Length < 1) { return(null); } switch ((QRPacketType)rawRequest[0]) { case QRPacketType.AvaliableCheck: request = new AvaliableRequest(rawRequest); break; //verify challenge to check game server is real or fake; //after verify we can add game server to server list case QRPacketType.Challenge: request = new ChallengeRequest(rawRequest); break; case QRPacketType.HeartBeat: request = new HeartBeatRequest(rawRequest); break; case QRPacketType.KeepAlive: request = new KeepAliveRequest(rawRequest); break; case QRPacketType.EchoResponse: request = new QRRequestBase(rawRequest); break; case QRPacketType.ClientMessageACK: request = new QRRequestBase(rawRequest); break; default: LogWriter.UnknownDataRecieved(rawRequest); request = null; break; } if (request == null) { return(null); } if (!(bool)request.Parse()) { LogWriter.ToLog(LogEventLevel.Error, ErrorMessage.GetErrorMessage(QRErrorCode.Parse)); return(null); } return(request); }
public AddErrorResponse(QRRequestBase request) : base(request) { PacketType = QRPacketType.ADDError; }
public KeepAliveResponse(QRRequestBase request) : base(request) { }
public ClientMessageResponse(byte[] message, int messageKey, QRRequestBase request) : base(request) { Message = message; MessageKey = messageKey; PacketType = QRPacketType.ClientMessage; }
public ChallengeResponse(QRRequestBase request) : base(request) { PacketType = QRPacketType.Echo; }