static void Main(string[] args) { Console.WriteLine("Starting the server at port: " + PORT); GenericOutcome outcome = GameLiftServerAPI.InitSDK(); if (outcome.Success) { /* * short[] messageTypes = { * MsgType.Connect, MsgType.Disconnect, Messages.ACCEPT_PLAYER_SESSION, Messages.START_LOCAL_GAME, * Messages.START_GAME, Messages.SUBMIT_COMMANDS, Messages.END_GAME, * }; * Util.ToList(messageTypes).ForEach(messageType => NetworkServer.RegisterHandler(messageType, GetHandler(messageType))); */ UdpClient udpClient = new UdpClient(PORT); udpClient.BeginReceive(DataReceived, udpClient); LogParameters paths = new LogParameters(); paths.LogPaths.Add("C:\\Game\\logs"); GameLiftServerAPI.ProcessReady(new ProcessParameters( OnGameSession, OnProcessTerminate, OnHealthCheck, PORT, paths )); Console.WriteLine("Listening on: " + PORT); Console.ReadKey(); } else { Console.WriteLine(outcome); } }
private static void LogOutcome(string ident, GenericOutcome outcome) { Debug.Log(ident + ": " + outcome.Success); if (outcome.Error != null) { Debug.LogError(outcome.Error.ErrorName + ": " + outcome.Error.ErrorMessage); } }
public int Run() { _logger.Info("call InitSDK"); var init = new GenericOutcome { Success = false }; for (var i = 0; i < 10; i++) { init = GameLiftServerAPI.InitSDK(); if (init.Success) { break; } _logger.ErrorFormat("init error: {0}", init.Error); Thread.Sleep(1000 * i + 1); } if (!init.Success) { _logger.ErrorFormat("cannot initialize GameLift Server SDK"); return(1); } _logger.Info("initialize GameLift Server SDK"); var server = ListenServer(); if (!server.IsRunning) { _logger.ErrorFormat("cannot launch server"); return(2); } var listenPort = server.LocalPort; _logger.InfoFormat("listen on: {0}", listenPort); GlobalContext.Properties["ListenPort"] = listenPort; if (!ProcessReady(listenPort, out var err)) { _logger.ErrorFormat("cannot ready to process: {0}", err); return(3); } while (_isRunning) { server.PollEvents(); Thread.Sleep(15); } _logger.InfoFormat("process ending: {0}", listenPort); ProcessEnding(); server.Stop(); return(0); }
public GenericOutcome ProcessReady(ProcessParameters procParameters) { processReady = true; processParameters = procParameters; GenericOutcome result = httpClientInvoker.ProcessReady(procParameters.Port, procParameters.LogParameters.LogPaths).Result; Task.Run(() => StartHealthCheck()); return(result); }
private static void OnAcceptPlayerSession() // (NetworkMessage netMsg) { // Messages.AcceptPlayerSessionMessage msg = netMsg.ReadMessage<Messages.AcceptPlayerSessionMessage>(); GenericOutcome outcome = GameLiftServerAPI.AcceptPlayerSession(""); // msg.playerSessionId); if (!outcome.Success) { log.Error(outcome); return; } }
public GenericOutcome ProcessReady(ProcessParameters procParameters) { processReady = true; processParameters = procParameters; if (!networkInitialized) { return(new GenericOutcome(new GameLiftError(GameLiftErrorType.NETWORK_NOT_INITIALIZED))); } GenericOutcome result = sender.ProcessReady(processParameters.Port, processParameters.LogParameters.LogPaths); Task.Run(() => StartHealthCheck()); return(result); }