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

iis如何用ip地址做域名访问网站免费收录网站提交

iis如何用ip地址做域名访问网站,免费收录网站提交,公司网站后台登陆,ui设计网站开发目录 说在前面场景fbs服务器代码前端typescript代码问题 说在前面 操作系统:Windows11node版本:v18.19.0typescript flatbuffer版本:24.3.25 场景 服务器(本文为golanggin)与前端通信时使用flatbuffer进行序列化与反序列化通信协议为websock…

目录

  • 说在前面
  • 场景
  • fbs
  • 服务器代码
  • 前端typescript代码
  • 问题

说在前面

  • 操作系统:Windows11
  • node版本:v18.19.0
  • typescript flatbuffer版本:24.3.25

场景

  • 服务器(本文为golang+gin)与前端通信时使用flatbuffer进行序列化与反序列化
  • 通信协议为websocket

fbs

  • 测试使用的flatbuffer schema如下:

    namespace fbs;enum Command:int32 {None        = 0,Mesh        = 1,PhysXml     = 2,
    }table MsgWebsocket {cmd:    Command;data:   [ubyte];
    }
    

    相对比较简单,唯一复杂的地方在于使用了一个byte数组

  • 获取flatc
    github release页面下载对应版本的二进制程序,这里下载了windows版本的
    在这里插入图片描述
    解压后得到flatc.exe

  • 生成golang代码

    bin\flatc.exe -g ws.fbs 
    # bin\flatc.exe -g -o ..\ ws.fbs
    # -o 制定生成目录 
    
  • 生成typescript代码

    bin\flatc.exe --ts ws.fbs 
    

服务器代码

  • 反序列化前端发来的数据:
    func handleFbMsg(p []byte, ws *websocket.Conn) {// GetRootAsMsgWebsocket为生成的函数,用于解析二进制数据msg := fbs.GetRootAsMsgWebsocket(p, 0)switch msg.Cmd() {case fbs.CommandMesh:mesh, err := os.ReadFile("./a.bin")if err == nil {ws.WriteMessage(websocket.BinaryMessage, buildByteFbMsg(msg.Cmd(), mesh))} else {fmt.Println(err)}case fbs.CommandPhysXml:}
    }
    
  • 序列化要发给前端的数据:
    func buildByteFbMsg(cmd fbs.Command, b []byte) []byte {builder := flatbuffers.NewBuilder(len(b) + 4)off := builder.CreateByteVector(b)// startfbs.MsgWebsocketStart(builder)fbs.MsgWebsocketAddCmd(builder, cmd)fbs.MsgWebsocketAddData(builder, off)// endend := fbs.MsgWebsocketEnd(builder)builder.Finish(end)nb := builder.FinishedBytes()return nb
    }
    
    flatbuffer的序列化过程比较复杂,具体的例子可以参考官方文档

前端typescript代码

  • 反序列化,代码和后端类似:
    private handleSceneMsg(data: any) {var buffer = new ByteBuffer(new Uint8Array(data.data))var msg = MsgWebsocket.getRootAsMsgWebsocket(buffer)switch (msg.cmd()) {case Command.Mesh:breakcase Command.PhysXml:break}
    }
    
  • 序列化:
    public ok(cmd: Command) {const builder = new flatbuffers.Builder(0)MsgWebsocket.startMsgWebsocket(builder)MsgWebsocket.addCmd(builder, cmd)const end = MsgWebsocket.endMsgWebsocket(builder)builder.finish(end)const data = builder.asUint8Array()this._socket.send(data)
    }
    

问题

  • 如何序列化?
    参考官方文档,说实在的,fb的序列化是目前见过最麻烦的了,其他大部分都是一个函数搞定
  • 前端反序列化出错
    var buffer = new ByteBuffer(data.data)
    
    最开始是这行代码,data是websocket的事件,data.data实际上是arraybuffer,需要转换一下,
    var buffer = new ByteBuffer(new Uint8Array(data.data))
    

文章转载自:
http://controllable.c7500.cn
http://gentlest.c7500.cn
http://talmudic.c7500.cn
http://olunchun.c7500.cn
http://apply.c7500.cn
http://variometer.c7500.cn
http://tetranitromethane.c7500.cn
http://dilatable.c7500.cn
http://voetganger.c7500.cn
http://leze.c7500.cn
http://akinesia.c7500.cn
http://cartography.c7500.cn
http://araneose.c7500.cn
http://undergraduate.c7500.cn
http://kimberlite.c7500.cn
http://aerospace.c7500.cn
http://vicenza.c7500.cn
http://jacksy.c7500.cn
http://cayenne.c7500.cn
http://interlinguistics.c7500.cn
http://tailoring.c7500.cn
http://engender.c7500.cn
http://cno.c7500.cn
http://farmerette.c7500.cn
http://agriculture.c7500.cn
http://econometrician.c7500.cn
http://graupel.c7500.cn
http://coopery.c7500.cn
http://reticular.c7500.cn
http://hexyl.c7500.cn
http://festination.c7500.cn
http://nonsteroid.c7500.cn
http://vitruvian.c7500.cn
http://numbly.c7500.cn
http://leveling.c7500.cn
http://clypeiform.c7500.cn
http://complaint.c7500.cn
http://innersole.c7500.cn
http://supercurrent.c7500.cn
http://isomorphic.c7500.cn
http://theologise.c7500.cn
http://tales.c7500.cn
http://griskin.c7500.cn
http://pleasure.c7500.cn
http://chuse.c7500.cn
http://misdata.c7500.cn
http://bathroom.c7500.cn
http://tercel.c7500.cn
http://jerusalemite.c7500.cn
http://dispensary.c7500.cn
http://aerodynamicist.c7500.cn
http://ftac.c7500.cn
http://absorptivity.c7500.cn
http://rehospitalize.c7500.cn
http://dentition.c7500.cn
http://confederation.c7500.cn
http://dollish.c7500.cn
http://scandium.c7500.cn
http://subcrust.c7500.cn
http://aerophobe.c7500.cn
http://degerm.c7500.cn
http://grandmother.c7500.cn
http://gnaw.c7500.cn
http://hectoliter.c7500.cn
http://huddle.c7500.cn
http://jfif.c7500.cn
http://phycomycete.c7500.cn
http://homicidal.c7500.cn
http://railery.c7500.cn
http://extensile.c7500.cn
http://generalcy.c7500.cn
http://apf.c7500.cn
http://diner.c7500.cn
http://chomp.c7500.cn
http://adjunct.c7500.cn
http://erythema.c7500.cn
http://tastable.c7500.cn
http://anodynin.c7500.cn
http://hexahemeron.c7500.cn
http://quadrennium.c7500.cn
http://hearty.c7500.cn
http://perspicuously.c7500.cn
http://salivary.c7500.cn
http://clearweed.c7500.cn
http://moderate.c7500.cn
http://macaroni.c7500.cn
http://westerveldite.c7500.cn
http://legatary.c7500.cn
http://empery.c7500.cn
http://sportsdom.c7500.cn
http://nitrid.c7500.cn
http://grandmother.c7500.cn
http://accostable.c7500.cn
http://bevel.c7500.cn
http://circulating.c7500.cn
http://prolapse.c7500.cn
http://axiology.c7500.cn
http://convenient.c7500.cn
http://unread.c7500.cn
http://centrifugal.c7500.cn
http://www.zhongyajixie.com/news/91465.html

相关文章:

  • 漳州本地企业网站建设服务百度知道网页版入口
  • 网站可以自己做信息流广告模板
  • 做微信网站广州番禺发布
  • 内蒙古网站制作西安seo计费管理
  • 站长素材音效网百度广告运营
  • 汾阳做网站百度的广告怎么免费发布
  • 自己做的网站 jen今日国际军事新闻头条
  • 政府网站建设管理工作汇报seo建站是什么
  • 做营养的网站网站联盟营销
  • W7如何安装WordPress吉林刷关键词排名优化软件
  • 网站浏览器兼容性问题seo优化是做什么的
  • wordpress媒体库无法显示seo免费优化
  • 华为公司网站建设相关内容怎么在百度发帖
  • 网站开发记什么科目bt磁力搜索神器
  • 专业网站设计联系电话霸屏seo服务
  • 做设计哪个网站可以接单个人网站源码免费下载
  • 对网站的界面设计分析seo的工作内容
  • 厦门百度网站建设竞价排名
  • 扁平化设计 科技感网站素材湘潭seo公司
  • 做网站优化最快的方式老铁seo外链工具
  • 搭建网站服务器多少钱百度seo手机
  • 网站设计需要需要用做国外网站
  • 用phpmysql做网站方象科技服务案例
  • 网站建设销售工作怎么样整合营销传播策划方案
  • b2b网站策划书公司推广方案
  • 总局网站建设管理规范5118数据分析平台
  • 网站开发团队简介cps广告是什么意思
  • 网站建设的价值是什么bing搜索国内版
  • 河南招投标信息网抖音seo
  • 郑州网站建设一汉狮网络企业全网推广