typescript Any.Pack
1 2 3 4 5 6 7 8 9 10 11 12 13 | IMessage body; UserLoginRequest req = new UserLoginRequest(); req.AuthToken = "8" ; Request sy = new Request(); sy.Token = "hello" ; sy.Body = Any.Pack(req); byte [] bs = sy.ToByteArray(); string hexString = BitConverter.ToString(bs); Debug.Log($ "len:{bs.Length}" ); Debug.Log(hexString); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import { readFileSync } from "fs" import * as pb from "protobufjs" let popContent = readFileSync( "pop.json" ) let popRoot = pb.Root.fromJSON(JSON.parse(popContent.toString())) let UserRequest:pb.Type = popRoot.lookupType( "ProtoSync.UserLoginRequest" ) let UserMsg = UserRequest.create({ authToken: "8" }) let Userbuffer = UserRequest.encode(UserMsg).finish() console.log(Userbuffer) let pubContent:Buffer = readFileSync( "proto.json" ) let pubRoot:pb.Root = pb.Root.fromJSON(JSON.parse(pubContent.toString())) let Request:pb.Type = pubRoot.lookupType( "ProtoSync.Request" ) // 创建包含 Userbuffer 的 Any 类型结构 // 创建 ByteBuffer 对象并写入 Uint8Array 数据 const byteBuffer = pb.util.newBuffer(Userbuffer.length); byteBuffer.set(Userbuffer); const anyValue = { type_url: "type.googleapis.com/ProtoSync.UserLoginRequest" , value: Userbuffer, //c#里这里有个byteString类型,ts中没有,蛋疼 }; //let reqMsg:pb.Message<{}> = Request.create({ token: "hello", body: UserMsg }) let reqMsg:pb.Message<{}> = Request.create({ token: "hello" , body: anyValue }) //let reqMsg:pb.Message<{}> = Request.create({ token: "hello"}) let buffer:Uint8Array = Request.encode(reqMsg).finish() console.log(`len:${buffer.length}`) console.log(buffer) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2018-06-20 Unity3D -- shader语法内置函数
2018-06-20 Unity3D -- shader光照常用函数和变量
2018-06-20 Unity3D -- shader常用函数和变量