public void TestPackage() { ExtendProtocolSerialize.Enable(); RPCPackage package = new RPCPackage { Count = 1, Method = "sdsad", GUID = "sdasjhnckjxzc0" }; byte[] bytes = ProtocolSerialize.Seralize(package); RPCPackage pack1 = ProtocolSerialize.Deseralize <RPCPackage>(bytes); Assert.AreEqual(package.Count, pack1.Count); Assert.AreEqual(package.Method, pack1.Method); Assert.AreEqual(package.GUID, pack1.GUID); }
public void TestErrorData() { ExtendProtocolSerialize.Enable(); byte[] bytes = new byte[] { 1, 2, 3, 4, 5, 6, 7 }; ProtocolSerialize.compatibility = ProtocolSerialize.Compatibility.Strict; RPCPackage pack1 = ProtocolSerialize.Deseralize <RPCPackage>(bytes); Assert.IsTrue(pack1 == null || !pack1.Validity()); ProtocolSerialize.compatibility = ProtocolSerialize.Compatibility.MostCompatible; RPCPackage pack11 = ProtocolSerialize.Deseralize <RPCPackage>(bytes); Assert.IsNotNull(pack11); }
public void TestUnityTypeClass() { ProtocolCore.Extend.ExtendProtocolSerialize.Enable(); ProtocolCore.Extend.ExtendUnityProtocol.Enable(); UnityTypeClass ut = new UnityTypeClass(); ut.v2 = Vector2.one * 2; ut.v3 = Vector3.one * 2; ut.v4 = Vector2.one * 2; ut.rect = new Rect(100, 100, 50, 50); ut.c = Color.red; ut.c32 = Color.yellow; ut.quaternion = new Quaternion(1, 2, 3, 4); ut.v2List = new List <Vector2>() { Vector2.one * 2, Vector2.one * 3, Vector2.one * 4 }; ut.cArray = new Color[] { Color.red, Color.yellow, Color.blue, Color.cyan, Color.green }; byte[] bs = ProtocolSerialize.Seralize(ut); UnityTypeClass newut = ProtocolSerialize.Deseralize <UnityTypeClass>(bs); Assert.AreEqual(ut.v2, newut.v2); Assert.AreEqual(ut.v3, newut.v3); Assert.AreEqual(ut.v4, newut.v4); Assert.AreEqual(ut.rect, newut.rect); Assert.AreEqual(ut.c, newut.c); Assert.AreEqual(ut.c32, newut.c32); Assert.AreEqual(ut.quaternion, newut.quaternion); for (int i = 0; i < ut.v2List.Count; i++) { Assert.AreEqual(ut.v2List[i], newut.v2List[i]); } for (int i = 0; i < ut.cArray.Length; i++) { Assert.AreEqual(ut.cArray[i], newut.cArray[i]); } }
public void TestPackAndUnPack() { Class1 class1 = new Class1(); class1.ArrayValue = new int[] { 1, 2, 3, 4, 5 }; class1.Class2.s = "classsedwqdsavcxvcxxxxxxxxxxxxxxxxxxdsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + "aaaaxxxxxxczxcsadasdasdasdssssss"; class1.b = true; class1.i = 12312; class1.listValue.Add(132); class1.Dictionary[1] = "dsasdasd"; class1.Dictionary[2] = "ddscccxz"; class1.s = "192.168.1.37"; ProtocolPackage[] packages = Packager.Pack(class1, 1024); Assert.AreEqual(packages.Length, 1); byte[] bytes = Packager.UnPack(packages); bytes = ProtocolSerialize.Seralize(packages[0]); ProtocolPackage package = ProtocolSerialize.Deseralize(typeof(ProtocolPackage), bytes) as ProtocolPackage; Assert.AreNotEqual(package, null); }
public void TestSeralize() { ExtendProtocolSerialize.Enable(); Class1 class1 = new Class1(); class1.ArrayValue = new int[] { 1, 2, 3, 4, 5 }; class1.Class2.s = "classsssssss"; // class1.Dictionary[1] = class1; class1.b = true; class1.i = 12312; class1.f = 5783f; class1.d = 231f; class1.Dictionary[1] = "dsasdasd"; class1.Dictionary[2] = "ddscccxz"; // class1.listObject.Add(class1); class1.listValue.Add(132); // class1.obj = class1; class1.s = "class111111"; byte[] bytes = ProtocolSerialize.Seralize(class1); Class1 class11 = ProtocolSerialize.Deseralize(typeof(Class1), bytes) as Class1; Assert.IsTrue(class1.Equals(class11)); }
public void TestSeralizePerformance() { int dataCount = 1000; int iteration = 1000; Class1 class1 = new Class1(); class1.ArrayValue = new int[] { 1, 2, 3, 4, 5 }; class1.Class2.s = "classsedwqdsavdddddddddddddddddsdasdasddddddddddddddddd" + "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + "sdasddddddddddddddddd" + "asddddddddddddddd" + "dasddddddddddddddddddddddxcvxcvxcvxcv" + "cxvcxxxxxxxxxxxxxxxxxxxxxxxxczxcsadasdasdasdssssss"; class1.b = true; class1.i = 12312; for (int i = 0; i < dataCount; i++) { class1.listValue.Add(i); } /* class1.Dictionary[1] = "dsasdasd"; * class1.Dictionary[2] = "ddscccxz";*/ class1.s = "192.168.1.37"; Iterations iterations = new Iterations(); for (int i = 0; i < iteration; i++) { iterations.class1s.Add(class1); } #region 序列化反序列化性能 Stopwatch watch = new Stopwatch(); byte[] bytes = null; Iterations iterations1; byte[] CompBbytes; { watch.Restart(); bytes = BitSerializer.Seralize(iterations); watch.Stop(); UnityEngine.Debug.Log("Bit seralizeTime:" + watch.ElapsedMilliseconds); // string s = ProtocolSerialize.DebugSeralizeStr(bytes); watch.Restart(); iterations1 = BitSerializer.Deseralize(typeof(Iterations), bytes) as Iterations; watch.Stop(); UnityEngine.Debug.Log("Bit DeseralizeTime:" + watch.ElapsedMilliseconds); #region 大小 UnityEngine.Debug.Log("Protocol序列化:" + bytes.Length); CompBbytes = CompressBase.CompressBytes(bytes); UnityEngine.Debug.Log("压缩后:" + CompBbytes.Length); #endregion } { watch.Restart(); ExtendProtocolSerialize.Enable(); bytes = ProtocolSerialize.Seralize(iterations); watch.Stop(); UnityEngine.Debug.Log("seralizeTime:" + watch.ElapsedMilliseconds); // string s = ProtocolSerialize.DebugSeralizeStr(bytes); watch.Restart(); iterations1 = ProtocolSerialize.Deseralize(typeof(Iterations), bytes) as Iterations; watch.Stop(); UnityEngine.Debug.Log("DeseralizeTime:" + watch.ElapsedMilliseconds); #region 大小 UnityEngine.Debug.Log("Protocol序列化:" + bytes.Length); CompBbytes = CompressBase.CompressBytes(bytes); UnityEngine.Debug.Log("压缩后:" + CompBbytes.Length); #endregion } { watch.Restart(); var json = UnityEngine.JsonUtility.ToJson(iterations); watch.Stop(); UnityEngine.Debug.Log("json seralizeTime:" + watch.ElapsedMilliseconds); // string s = ProtocolSerialize.DebugSeralizeStr(bytes); watch.Restart(); iterations1 = UnityEngine.JsonUtility.FromJson <Iterations>(json); watch.Stop(); UnityEngine.Debug.Log("json DeseralizeTime:" + watch.ElapsedMilliseconds); } #endregion }
public void TestSeralizePerformance() { ExtendProtocolSerialize.Enable(); Class1 class1 = new Class1(); class1.Class2.s = "classsedwqdsavdddddddddddddddddsdasdasddddddddddddddddd" + "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + "sdasddddddddddddddddd" + "asddddddddddddddd" + "dasddddddddddddddddddddddxcvxcvxcvxcv" + "cxvcxxxxxxxxxxxxxxxxxxxxxxxxczxcsadasdasdasdssssss"; class1.b = true; class1.i = 12312; int TestCont = 100; for (int i = 0; i < 1000; i++) { class1.listValue.Add((byte)i); } class1.ArrayValue = class1.listValue.ToArray(); /* class1.Dictionary[1] = "dsasdasd"; * class1.Dictionary[2] = "ddscccxz";*/ class1.s = "192.168.1.37"; #region 序列化反序列化性能 Stopwatch watch = new Stopwatch(); watch.Start(); byte[] bytes = null; for (int i = 0; i < TestCont; i++) { bytes = ProtocolSerialize.Seralize(class1); } watch.Stop(); UnityEngine.Debug.Log("seralizeTime:" + watch.ElapsedMilliseconds); string s = ProtocolSerialize.DebugSeralizeStr(bytes); watch.Restart(); for (int i = 0; i < TestCont; i++) { Class1 class11 = ProtocolSerialize.Deseralize(typeof(Class1), bytes) as Class1; } watch.Stop(); UnityEngine.Debug.Log("DeseralizeTime:" + watch.ElapsedMilliseconds); /* watch.Restart(); * for (int i = 0; i < TestCont; i++) * { * class1.ToByteArray();//2进制流输出 * } * watch.Stop(); * UnityEngine.Debug.Log("binaryBytesTime:" + watch.ElapsedMilliseconds); */ watch.Restart(); for (int i = 0; i < TestCont; i++) { UnityEngine.JsonUtility.ToJson(class1); } watch.Stop(); UnityEngine.Debug.Log("seralize json:" + watch.ElapsedMilliseconds); s = UnityEngine.JsonUtility.ToJson(class1); watch.Restart(); for (int i = 0; i < TestCont; i++) { UnityEngine.JsonUtility.FromJson <Class1>(s); } watch.Stop(); UnityEngine.Debug.Log("DeseralizeTime json:" + watch.ElapsedMilliseconds); #endregion #region 大小 byte[] binaryBytes = class1.ToByteArray();//2进制流输出 UnityEngine.Debug.Log("二进制流直接输出:" + binaryBytes.Length); byte[] CompBinartBytes = CompressBase.CompressBytes(binaryBytes); UnityEngine.Debug.Log("压缩后:" + CompBinartBytes.Length); bytes = ProtocolSerialize.Seralize(class1); UnityEngine.Debug.Log("Protocol序列化:" + bytes.Length); byte[] CompBbytes = CompressBase.CompressBytes(bytes); UnityEngine.Debug.Log("压缩后:" + CompBbytes.Length); string base64 = Convert.ToBase64String(bytes); UnityEngine.Debug.Log("base64:" + base64.Length); string str = UnityEngine.JsonUtility.ToJson(class1);// json.Serialize(class1); byte[] jsonbytes = Encoding.UTF8.GetBytes(str); UnityEngine.Debug.Log("Json序列化:" + jsonbytes.Length); byte[] Compjsonbytes = CompressBase.CompressBytes(jsonbytes); UnityEngine.Debug.Log("压缩后:" + Compjsonbytes.Length); jsonbytes = CompressBase.DecompressBytes(Compjsonbytes); str = Encoding.UTF8.GetString(jsonbytes); int a = 0; #endregion }
public static void Unable() { ProtocolSerialize.UnregistSerialize(instance); }
public static void Enable() { ProtocolSerialize.RegistSerialize(instance); }