示例#1
0
        private static void Main(string[] args)
        {
            // Logger
            Log.Logger = new LoggerConfiguration()
                         .MinimumLevel.Debug()
                         .WriteTo.Console(theme: AnsiConsoleTheme.Code)
                         .WriteTo.File("Logs/Log.txt", rollingInterval: RollingInterval.Day)
                         .CreateLogger();

            // Configuration
            Configuration = GetConfiguration();
            Log.Information("Configuration loaded.");

            // Messages
            MessagesManager.Initialize();
            Log.Information($"{MessagesManager.MessagesCount} messages loaded.");

            // Handlers
            HandlersManager.Initialize();
            Log.Information($"{HandlersManager.HandlersCount} handlers loaded.");

            // Start server
            Log.Debug("Starting server...");
            ServerManager.Start();

            Console.ReadKey();
        }
        public void SerializeDeserializeMessage()
        {
            MessagesManager.Initialize();
            var pingMsg = new PingMessage(123456789);

            // Length(int) + Id(short) + Time(long)
            byte[] serializedData = MessagesManager.SerializeMessage(pingMsg);
            Assert.Equal(4 + 2 + 8, serializedData.Length);

            byte[] dataWithoutLength   = serializedData.Skip(4).ToArray();
            var    deserializedPingMsg = (PingMessage)MessagesManager.GetDeserializedMessage(dataWithoutLength);

            Assert.Equal(123456789, deserializedPingMsg.Time);
        }