From de14574800ed21765e1ac6bba1d19b774f477c29 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 9 Feb 2017 20:32:53 -0500 Subject: Compress shop items on server-side. --- ShiftOS.Server/Program.cs | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) (limited to 'ShiftOS.Server/Program.cs') diff --git a/ShiftOS.Server/Program.cs b/ShiftOS.Server/Program.cs index c468503..352214d 100644 --- a/ShiftOS.Server/Program.cs +++ b/ShiftOS.Server/Program.cs @@ -34,6 +34,7 @@ using Newtonsoft.Json; using System.Net; using System.Net.Sockets; using System.Security.Cryptography; +using System.IO.Compression; namespace ShiftOS.Server { @@ -223,11 +224,39 @@ namespace ShiftOS.Server File.WriteAllText(fPath, Encryption.Encrypt(contents)); } - /// - /// Interpret the specified msg. - /// - /// Message. - public static void Interpret(ServerMessage msg) + public static string Compress(string s) + { + var bytes = Encoding.Unicode.GetBytes(s); + using (var msi = new MemoryStream(bytes)) + using (var mso = new MemoryStream()) + { + using (var gs = new GZipStream(mso, CompressionMode.Compress)) + { + msi.CopyTo(gs); + } + return Convert.ToBase64String(mso.ToArray()); + } + } + + public static string Decompress(string s) + { + var bytes = Convert.FromBase64String(s); + using (var msi = new MemoryStream(bytes)) + using (var mso = new MemoryStream()) + { + using (var gs = new GZipStream(msi, CompressionMode.Decompress)) + { + gs.CopyTo(mso); + } + return Encoding.Unicode.GetString(mso.ToArray()); + } + } + + /// + /// Interpret the specified msg. + /// + /// Message. + public static void Interpret(ServerMessage msg) { Dictionary args = null; @@ -465,7 +494,7 @@ Contents: Contents = JsonConvert.SerializeObject(new { shop = shopName, - itemdata = item + itemdata = Compress(Compress(JsonConvert.SerializeObject(item))) }) })); } -- cgit v1.2.3