Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
 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);
     }
 }
Пример #4
0
        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);
            }
        }
Пример #5
0
 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);
     }
 }