当前位置: 首页 > wzjs >正文

哪里有网站建设商家东莞电子网站建设

哪里有网站建设商家,东莞电子网站建设,网络营销的推广手段,展示类网站开发费用protobuf生成的协议,有挺多协议的.利用反射生成dto进行伪协议的响应 和 发送请求 应用场景: 请求(CS)_后端先写完了,前端还搞完时,可使用此请求,可自测 响应(SC)_可自行构建一个响应,对数据进行测试 // 请求 使用物品 CS message ReqUseItem{optional Opcodes MessageID1[def…

protobuf生成的协议,有挺多协议的.利用反射生成dto进行伪协议的响应 和 发送请求
应用场景:
请求(CS)_后端先写完了,前端还搞完时,可使用此请求,可自测
响应(SC)_可自行构建一个响应,对数据进行测试

// 请求 使用物品  CS
message ReqUseItem{optional Opcodes MessageID=1[default = CG_MSG_REQ_USE_ITEM];optional uint32 itemId = 2;optional uint32 num = 3;optional string strparam = 4;  //buff{"castBuff":"1"}        {"rewardIdx":"1"} 礼包选择,从1开始     
}
//响应 使用物品 SC
message RetUseItem{optional Opcodes MessageID=1[default = GC_MSG_RET_USE_ITEM];optional uint32 errorCode = 2;optional uint32 itemId = 3;optional uint32 num = 4;repeated ItemInfo rewards = 5;optional string strparam = 6;
}

Unity使用Odin,写的页面,Json格式 dtoName{json内容}
在这里插入图片描述

using System;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;
using System.Reflection;
using QQu;
using Sirenix.OdinInspector;
using UnityEditor;
using Sirenix.OdinInspector.Editor;
using Sirenix.Utilities;
using Sirenix.Utilities.Editor;/// <summary> 协议 辅助工具  一般用来 1.测试请求   2.自己给自己下发数据</summary>
public class EditorSendReceiveNet : OdinEditorWindow
{[MenuItem("Tools/辅助工具/协议工具_请求_伪收到 &#%N", priority = 199)]public static void ShowNetTool(){var win = GetWindow<EditorSendReceiveNet>("协议___C2S___S2C(伪)");win.position = GUIHelper.GetEditorWindowRect().AlignCenter(680, 520);}private  Dictionary<string, Type> mEntityPbClass;public EditorSendReceiveNet(){Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); // 获取当前应用程序域中所有已加载的程序集mEntityPbClass = new Dictionary<string, Type>();foreach (var assembly in assemblies){Type[] types = assembly.GetTypes(); // 筛选出所有 Pb 命名空间中的公共类var entityValues = types.Where(t => t.IsClass && t.IsPublic && t.Namespace == "Pb").ToList();foreach (var itemClass in entityValues){var key = itemClass.FullName.Replace("Pb.", "");mEntityPbClass[key] = itemClass;}}Debug.LogError($"初始化_Pb_总条数{mEntityPbClass.Count}");}[LabelText("只知道dto名字"), HorizontalGroup("module"), PropertyOrder(Order = 1), Space(5)]public string mDtoNameTxt = "ReqUseItem";[Button("先 生成一个Json_Dto,然后手动自行修改赋值", ButtonSizes.Medium, ButtonHeight = 30), HorizontalGroup("module"), PropertyOrder(Order = 2)]public void GenOneDto(){if (mEntityPbClass.TryGetValue(mDtoNameTxt, out var itemClass)){var properties = itemClass.GetProperties();var defaultValues = new Dictionary<string, object>();foreach (var property in properties){if (property.PropertyType == typeof(int) || property.PropertyType == typeof(uint)){defaultValues[property.Name] = 0;}else if (property.PropertyType == typeof(string)){defaultValues[property.Name] = "string_null";}else if (property.PropertyType == typeof(decimal) || property.PropertyType == typeof(float)){defaultValues[property.Name] = 0;}else if (property.PropertyType == typeof(bool)){defaultValues[property.Name] = false;}else if (property.PropertyType.IsClass){defaultValues[property.Name] = null;}}var jsonContent = Newtonsoft.Json.JsonConvert.SerializeObject(defaultValues);mDtoJsonTxt = itemClass.Name.ToString() + "\n" + jsonContent.ToString();}else{Debug.LogError("确定左边 输入正确了?");}}[TextArea(20, 50), HideLabel, Space(30), PropertyOrder(Order = 3), InfoBox("应用场景: \r\n请求(CS)_后端先写完了,前端还搞完时,可使用此请求,可自测\r\n响应(SC)_可自行构建一个响应,对数据进行测试\r\nPS:Console面板的Log可以直接copy内容,再对内容进行小修改")]public string mDtoJsonTxt = @"SyncCurrency{""InfoLists"": [{""Ntype"": 11,""Val"": 101660500}]
}";[HorizontalGroup("Split", 0.5f)][Button("伪_接收到协议", ButtonSizes.Medium, ButtonHeight = 30), PropertyOrder(Order = 4)]public void ReceiveNet(){int index = mDtoJsonTxt.IndexOf('{');string typeName = mDtoJsonTxt.Substring(0, index).Trim();string jsonContent = mDtoJsonTxt.Substring(index).Trim();if (string.IsNullOrEmpty(typeName) || string.IsNullOrEmpty(jsonContent)){Debug.LogError("数据格式 不对哦   dtoName{jsonString}   eg:SyncCurrency{  \"InfoLists\": [    {      \"Ntype\": 11,      \"Val\": 101660500    }  ]}");return;}if (mEntityPbClass.TryGetValue(typeName, out var itemClass)){var syncCurrency = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonContent, itemClass); // 使用非泛型的方法PropertyInfo messageIDProperty = itemClass.GetProperty("MessageID");object messageIDValue = messageIDProperty.GetValue(syncCurrency);var cmdValue = (int)messageIDValue;NetMgr.Ins.EditorReceive_Test((uint)cmdValue, syncCurrency);}else{Debug.LogError("查查吧~1.DTO没写对? 2.协议不是最新的?");}}[VerticalGroup("Split/right")][Button("发送请求", ButtonSizes.Medium, ButtonHeight = 30), PropertyOrder(Order = 5)]public void SendNet(){int index = mDtoJsonTxt.IndexOf('{');string typeName = mDtoJsonTxt.Substring(0, index).Trim();string jsonContent = mDtoJsonTxt.Substring(index).Trim();if (string.IsNullOrEmpty(typeName) || string.IsNullOrEmpty(jsonContent)){Debug.LogError("数据格式 不对哦   dtoName{jsonString}   eg:SyncCurrency{  \"InfoLists\": [    {      \"Ntype\": 11,      \"Val\": 101660500    }  ]}");return;}if (mEntityPbClass.TryGetValue(typeName, out var itemClass)){var syncCurrency = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonContent, itemClass); // 使用非泛型的方法PropertyInfo messageIDProperty = itemClass.GetProperty("MessageID");object messageIDValue = messageIDProperty.GetValue(syncCurrency);var cmdValue = (int)messageIDValue;NetMgr.Ins.Send((uint)cmdValue, syncCurrency);//此行 调用 自己的业务 }else{Debug.LogError("查查吧~1.DTO没写对? 2.协议不是最新的?");}}
}
http://www.dtcms.com/wzjs/541214.html

相关文章:

  • 校园网站建设与管理问题分析怎样不用代码就能建网站
  • 重庆潼南网站建设报价注册公司一年大概需要多少费用
  • 哪里有做美食的视频网站业之峰装饰公司北京地址
  • 营销型网站建设价格是多少展馆展示设计公司排名前十名
  • 网站的目的及功能规划可以提升自己的网站
  • 网站建设轮播图如何做自己的淘客网站
  • wordpress免费导航主题seo入门版
  • 建设工程竣工备案网站运营推广公司
  • 大丰网站建设价格报关做业务可以上哪些网站
  • dede酒业企业网站模板超全的开源建站系统大全
  • 手机回收站网页制作素材教学
  • 自己做网站免费wordpress 画廊
  • 做网站手机软件网站备案账号密码
  • 网站页面分析范文c2c平台代表
  • 江门网站开发多少钱上海建设工程检测网官网
  • 建设网站 软件龙岩网站建设大概费用
  • 网站建设简单流程网站建设的公司推荐
  • 描述电子商务网站建设wordpress设置权限设置
  • 个人网站开论坛公司名注册
  • 泉州网页模板建站wordpress 简报
  • 哪里有网站制作技术网站建设 自查表
  • 地方性的网站有前途北京的重要的网站
  • 做网站费用会计科目网站建设教程搭建浊贝湖南岚鸿给力
  • 福州建设银行官网招聘网站职业生涯规划大赛演讲稿
  • 网站的空间需要续费么南京制作网站企业
  • 照明公司网站制作泰安人才网最新招聘
  • python做h5网站厦门软件开发工资一般多少
  • 网站开发语言太老科普网站建设方案书
  • 网站前端交互功能案例分析有哪些做网游单机版的网站
  • wordpress 推荐主题南通网站搜索引擎优化