private void OutputPackage(ItemPackageResponse packageResponse) { if (packageResponse.Code == (int)MessageCode.Success) { var response = new ItemPackageDataResponse(); response.Data = new ItemPackageData(); //var packageItemsEntity = SerializationHelper.FromByte<ItemPackageItemsEntity>(packageResponse.Data.ItemString); //if (packageItemsEntity == null || packageItemsEntity.Items == null) // response.Data.Items = new List<ItemInfoEntity>(); //else //{ // response.Data.Items = packageItemsEntity.Items; //} response.Data.Items = packageResponse.Data.Items; response.Data.PackageSize = packageResponse.Data.PackageSize; HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", ShareUtil.DomainUrl); var json = SerializationHelper.ToJson(response); var bytes = Encoding.Unicode.GetBytes(json); byte[] data = Encoding.Unicode.GetBytes(json); StringBuilder result = new StringBuilder(data.Length * 8); foreach (byte b in data) { result.Append(Convert.ToString(b, 2).PadLeft(8, '0')); } //var bytes = SerializationHelper.ToByte(json); HttpContext.Current.Response.Write(bytes.ToString()); //OutputHelper.Output(response); } else { OutputHelper.Output(packageResponse.Code); } }
public ItemPackageResponse ReadPackage(byte[] buffer) { var response = new ItemPackageResponse(); response.Data = new ItemPackageEntity(); int offset = 0; response.Data.PackageSize = ByteReader.ReadInt32(buffer, ref offset); response.Data.Items = new List <ItemInfoEntity>(); int num1 = ByteReader.ReadInt32(buffer, ref offset); if (num1 > 0) { for (int i = 0; i < num1; i++) { ItemInfoEntity item = new ItemInfoEntity(); item.ItemCount = ByteReader.ReadInt32(buffer, ref offset); item.ItemCode = ByteReader.ReadInt32(buffer, ref offset); item.ItemId = new Guid(ByteReader.ReadString(buffer, ref offset)); item.ItemType = ByteReader.ReadByte(buffer, ref offset); switch (item.ItemType) { case (int)EnumItemType.PlayerCard: item.ItemProperty = ReadPlayerCardProperty(buffer, ref offset); break; case (int)EnumItemType.Equipment: item.ItemProperty = ReadEquipmentProperty(buffer, ref offset); break; } response.Data.Items.Add(item); } } return(response); }
void OutputPackage(ItemPackageResponse packageResponse) { if (packageResponse.Code == (int)MessageCode.Success) { var response = new ItemPackageDataResponse(); response.Data = new ItemPackageData(); //var packageItemsEntity = SerializationHelper.FromByte<ItemPackageItemsEntity>(packageResponse.Data.ItemString); //if (packageItemsEntity == null || packageItemsEntity.Items == null) // response.Data.Items = new List<ItemInfoEntity>(); //else //{ // response.Data.Items = packageItemsEntity.Items; //} response.Data.Items = packageResponse.Data.Items; response.Data.PackageSize = packageResponse.Data.PackageSize; //HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", ShareUtil.DomainUrl); //var json = SerializationHelper.ToJson(response); //var bytes = SerializationHelper.ToByte(json); //HttpContext.Current.Response.BinaryWrite(bytes); OutputHelper.Output(response); } else { OutputHelper.Output(packageResponse.Code); } }
public byte[] GetPackageBuffer(ItemPackageResponse response) { using (var ms = new MemoryStream()) { var writer = new BinaryWriter(ms); var packageData = response.Data; ByteWriter.WriteTo(writer, packageData.PackageSize); //32位 int ByteWriter.WriteTo(writer, packageData.Items.Count); //32位 int foreach (var entity in packageData.Items) { ByteWriter.WriteTo(writer, entity.ItemCount); //32位 int ByteWriter.WriteTo(writer, entity.ItemCode); //32位 int ByteWriter.WriteTo(writer, entity.ItemId); //string ByteWriter.WriteTo(writer, (byte)entity.ItemType); //8位 byte switch (entity.ItemType) { case (int)EnumItemType.PlayerCard: WritePlayerCardProperty(writer, entity.ItemProperty as PlayerCardProperty); break; case (int)EnumItemType.Equipment: WriteEquipmentProperty(writer, entity.ItemProperty as EquipmentProperty); break; } } writer.Flush(); var bytes = ms.ToArray(); return(bytes); } }
void OutputPackage2(ItemPackageResponse packageResponse) { if (packageResponse.Code == (int)MessageCode.Success) { var buffer = GetPackageBuffer(packageResponse); HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", ShareUtil.DomainUrl); HttpContext.Current.Response.BinaryWrite(buffer); } else { OutputHelper.Output(packageResponse.Code); } }