Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Console.Title = "JAWE.Game";

            //Console.WriteLine("Initialized MessageProcessor with {0} messages.", MessageProcessorOld.MessagesCount);
            Console.WriteLine("Initialized MessageTable with {0} handlers.", GameClient.MessageTable.HandlerCount);

#if !DEBUG
            HearthBeat.Initialize();
#endif

            var server = new GameServer();

            var peerServer = new UdpServer(5350, GameClient.WrEncoder);
            var natServer  = new UdpServer(5351, null);

            server.Activate();
            peerServer.Activate();
            natServer.Activate();

            Console.WriteLine("Hello World!");

            // TODO Keep main thread active until the server is fully shutdown.
            while (true)
            {
                Console.ReadKey(true);
            }
        }
Ejemplo n.º 2
0
        // for testing purposes we need a parameterless method because ElapsedEventArgs has only internal constructor
        private void Timer_Elapsed()
        {
            if (Debugger.IsAttached)
            {
                return;
            }

            var timerEnabled = _timer.Enabled;

            _timer.Enabled = false;

            try
            {
                HearthBeat?.Invoke(null, EventArgs.Empty);
            }
            catch (Exception ex) //logged
            {
                SnLog.WriteException(ex, EventMessage.Error.HealthCheck, EventId.RepositoryRuntime);
            }

            try
            {
                _dataHandler.CleanupSecurityActivities();
            }
            catch (Exception ex) //logged
            {
                SnLog.WriteException(ex, EventMessage.Error.HealthCheck, EventId.RepositoryRuntime);
            }
            finally
            {
                _timer.Enabled = timerEnabled;
            }
        }