Ejemplo n.º 1
0
        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);
     }
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 5
0
        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;
            }
        }
Ejemplo n.º 6
0
        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);
        }