예제 #1
0
 private void ReadWorker()
 {
     while (_running)
     {
         try
         {
             var messages = CommunicationHub.Net.Hub.Get();
             foreach (var message in messages)
             {
                 try
                 {
                     OnMessage?.Invoke(this, CompressUtils.DeflateDecompress(message).ToArray());
                 }
                 catch (Exception e)
                 {
                     Logger.LogError($"Error occured: {e}");
                 }
             }
             if (messages.Length == 0)
             {
                 Thread.Sleep(TimeSpan.FromMilliseconds(100));
             }
         }
         catch (Exception e)
         {
             Logger.LogError($"Error occured: {e}");
         }
     }
 }
예제 #2
0
        public void Test_CompressDecompress()
        {
            var data = Enumerable.Range(0, 10000).SelectMany(_ => "0xdeadbeef".HexToBytes()).ToArray();

            Console.WriteLine($"{data.Length}: {data.ToHex()}");
            var c = CompressUtils.DeflateCompress(data).ToArray();

            Console.WriteLine($"{c.Length}: {c.ToHex()}");
            var restored = CompressUtils.DeflateDecompress(c).ToArray();

            Console.WriteLine($"{restored.ToHex()}");
            Assert.AreEqual(data, restored);
        }