protected override bool OnHandleMessage(IMessage message, PhotonServerPeer serverPeer) { OperationResponse operationResponse; if (serverPeer.ServerId.HasValue) { operationResponse = new OperationResponse(message.Code) { ReturnCode = -1, DebugMessage = "Already Registered" }; } else { var registerRequest = new RegisterSubServer(serverPeer.Protocol, message); if (!registerRequest.IsValid) { string msg = registerRequest.GetErrorMessage(); if (Log.IsDebugEnabled) { Log.DebugFormat("Invalid Register Request: {0}", msg); } operationResponse = new OperationResponse(message.Code) { DebugMessage = msg, ReturnCode = (short)ErrorCode.OperationInvalid }; } else { var registerData = SerializeUtil.Deserialize <RegisterSubServerData>(registerRequest.RegisterSubServerOperation); if (Log.IsDebugEnabled) { Log.DebugFormat("Received register request: Address={0}, UdpPort={2}, TcpPort={1}, Type={3}", registerData.GameServerAddress, registerData.TcpPort, registerData.UdpPort, registerData.ServerType); } if (registerData.UdpPort.HasValue) { serverPeer.UdpAddress = registerData.GameServerAddress + ":" + registerData.UdpPort; } if (registerData.TcpPort.HasValue) { serverPeer.TcpAddress = registerData.GameServerAddress + ":" + registerData.TcpPort; } serverPeer.ServerId = registerData.ServerId; serverPeer.ServerType = registerData.ServerType; serverPeer.ApplicationName = registerData.ApplicationName; Server.ConnectionCollection <PhotonConnectionCollection>().OnConnect(serverPeer); operationResponse = new OperationResponse(message.Code); } } serverPeer.SendOperationResponse(operationResponse, new SendParameters()); // string FilePath = Path.Combine(Server.BinaryPath, "esquel.dar"); // List<string> sqlsetup = File.ReadLines(FilePath).ToList(); // Log.DebugFormat("{0}\n{1}\n{2}\n{3}", sqlsetup[0],sqlsetup[1],sqlsetup[1],sqlsetup[1]); return(true); }
protected virtual OperationResponse HandleRegisterGameServerRequest(OperationRequest request) { var registerRequest = new RegisterSubServer(Protocol, request); if (registerRequest.IsValid == false) { string msg = registerRequest.GetErrorMessage(); if (Log.IsDebugEnabled) { Log.DebugFormat("Invalid register request: {0}", msg); } return(new OperationResponse(request.OperationCode) { DebugMessage = msg, ReturnCode = (short)ErrorCode.OperationInvalid }); } if (Log.IsDebugEnabled) { Log.DebugFormat( "Received register request: Address={0}, UdpPort={2}, TcpPort={1}, Type={3}", registerRequest.GameServerAddress, registerRequest.TcpPort, registerRequest.UdpPort, registerRequest.ServerType); } if (registerRequest.UdpPort.HasValue) { UdpAddress = registerRequest.GameServerAddress + ":" + registerRequest.UdpPort; } if (registerRequest.TcpPort.HasValue) { TcpAddress = registerRequest.GameServerAddress + ":" + registerRequest.TcpPort; } ServerId = registerRequest.ServerId; Type = (SubServerType)registerRequest.ServerType; _server.SubServers.OnConnect(this); return(new OperationResponse(request.OperationCode)); }
protected bool OnHandleMessage(IMessage message, PhotonServerPeer serverPeer) { OperationResponse operationResponse; if (serverPeer.Registered) { operationResponse = new OperationResponse(message.Code) { ReturnCode = (short)ErrorCode.InternalServerError, DebugMessage = "Already registered" }; } else { var registerRequest = new RegisterSubServer(serverPeer.protocol, message); if (!registerRequest.IsValid) { string msg = registerRequest.GetErrorMessage(); if (Log.IsDebugEnabled) { Log.DebugFormat("Invalid register request {0}", msg); } operationResponse = new OperationResponse(message.Code) { DebugMessage = msg, ReturnCode = (short)ErrorCode.OperationInvalid }; } else { XmlSerializer mySerializer = new XmlSerializer(typeof(RegisterSubServerData)); StringReader inStream = new StringReader(registerRequest.RegisterSubServerOperation); var registerData = (RegisterSubServerData)mySerializer.Deserialize(inStream); if (Log.IsDebugEnabled) { Log.DebugFormat("Received register request: Address={0}, UdpPort={1}, TcpPort={2}, Type={3}", registerData.GameServerAddress, registerData.UdpPort, registerData.TcpPort, registerData.ServerType); } var serverData = serverPeer.ServerData <ServerData>(); if (serverData == null) { Log.DebugFormat("ServerData is NULL"); } if (registerData.UdpPort.HasValue) { serverData.UdpAddress = registerData.GameServerAddress + ":" + registerData.UdpPort; } if (registerData.TcpPort.HasValue) { serverData.TcpAddress = registerData.GameServerAddress + ":" + registerData.TcpPort; } serverData.ServerId = registerData.ServerId; serverData.ServerType = registerData.ServerType; serverPeer.ServerType = _serverType.GetServerType(registerData.ServerType); serverData.ApplicationName = registerData.ServerName; Log.DebugFormat("ServerData: id={0} AppName={1} Type={2} | TCP: {3} UDP: {4}", serverData.ServerId, serverData.ApplicationName, serverData.ServerType, serverData.TcpAddress, serverData.UdpAddress); operationResponse = new OperationResponse(message.Code, new Dictionary <byte, object>() { { _serverConfiguration.SubCodeParameterCode, 0 } }); serverPeer.Registered = true; } } serverPeer.SendOperationResponse(operationResponse, new SendParameters()); return(true); }
protected override bool OnHandleMessage(IMessage message, PhotonServerPeer serverPeer) { Log.DebugFormat("On handle message called in handleserverregistration"); OperationResponse operationResponse; if (serverPeer.ServerId.HasValue) { Log.DebugFormat("REGISTRATION EXISTS"); operationResponse = new OperationResponse(message.Code) { ReturnCode = -1, DebugMessage = "Already registered." }; } else { var registerRequest = new RegisterSubServer(serverPeer.Protocol, message); if (!registerRequest.IsValid) { Log.DebugFormat("REGISTRATION NOT VALID"); string msg = registerRequest.GetErrorMessage(); if (Log.IsDebugEnabled) { Log.DebugFormat("invalid register request {0}", msg); } operationResponse = new OperationResponse(message.Code) { DebugMessage = msg, ReturnCode = (short)ErrorCode.OperationInvalid }; } else { Log.DebugFormat("REGISTRATION VALID"); XmlSerializer mySerializer = new XmlSerializer(typeof(RegisterSubServerData)); StringReader inStream = new StringReader(registerRequest.RegisterSubServerOperation); var registerData = (RegisterSubServerData)mySerializer.Deserialize(inStream); if (Log.IsDebugEnabled) { Log.DebugFormat("Received register request: Address={0}, udptport={2}, tcport={1}, Type={3}", registerData.GameServerAddress, registerData.TcpPort, registerData.UdpPort, registerData.ServerType); } if (registerData.UdpPort.HasValue) { serverPeer.UdpAddress = registerData.GameServerAddress + ":" + registerData.UdpPort; } if (registerData.TcpPort.HasValue) { serverPeer.TcpAddress = registerData.GameServerAddress + ":" + registerData.UdpPort; } serverPeer.ServerId = registerData.ServerId; serverPeer.ServerType = registerData.ServerType; serverPeer.ApplicationName = registerData.ApplicationName; Server.ConnectionCollection <PhotonConnectionCollection>().OnConnect(serverPeer); operationResponse = new OperationResponse(message.Code); } } serverPeer.SendOperationResponse(operationResponse, new SendParameters()); return(true); }
protected bool OnHandleMessage(IMessage message, PhotonServerPeer serverPeer) { OperationResponse operationResponse; // we are already registered, tell the subserver it tried to reiogster more than once if (serverPeer.Registered) { operationResponse = new OperationResponse(message.Code) { ReturnCode = (short)ErrorCode.InternalServerError, DebugMessage = "Already Registered" }; } else { var registerRequest = new RegisterSubServer(serverPeer.Protocol, message); // Register sub server operation is bad, something is missing, etc.... if (!registerRequest.IsValid) { string msg = registerRequest.GetErrorMessage(); if (Log.IsDebugEnabled) { Log.DebugFormat("Invalid Register request {0}", msg); } operationResponse = new OperationResponse(message.code) { DebugMessage = msg, ReturnCode = (short)ErrorCode.OperationInvalid }; } else { // valid message, not registered process the registration. XmlSerializer mySerializer = new XmlSerializer(typeof(RegisterSubServerData)); StringReader inStream = new StringReader(registerRequest.RegisterSubServerOperation); var registerData = (RegisterSubServerData)mySerializer.Deserialize((inStream)); if (Log.IsDebugEnabled) { Log.DebugFormat("Received register request: Address ={0}, Udpport={1}, Tcpport={2}, Type={3}", registerData.GameServerAddress, registerData.UdpPort, registerData.TcpPort, registerData.ServerType); } var serverData = serverPeer.ServerData <ServerData>(); if (serverData == null) { // Autofac Doesnt have a reference to serverData so it doesnt exist in the server Iserverdata list Log.DebugFormat("ServerData is null..."); } if (registerData.UdpPort.HasValue) { serverData.UdpAddress = registerData.GameServerAddress + ":" + registerData.UdpPort; } if (registerData.TcpPort.HasValue) { serverData.TcpAddress = registerData.GameServerAddress + ":" + registerData.TcpPort; } // setting server ID serverData.ServerId = registerData.ServerId; // setting server type serverData.ServerType = registerData.ServerType; // looking up the server type for the server peer serverPeer.ServerType = _serverType.GetServerType(registerData.ServerType); // setting application name serverData.ApplicationName = registerData.ServerName; operationResponse = new OperationResponse(message.Code); serverPeer.Registered = true; } } serverPeer.SendOperationResponse(operationResponse, new SendParameters()); return(true); }