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

iis如何用ip地址做域名访问网站百度搜索收录

iis如何用ip地址做域名访问网站,百度搜索收录,免费网络电话免费版试用,用react做的网站上传目录 说在前面场景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://www.ds6.com.cn/news/28727.html

相关文章:

  • 个人网站开发教程百度网页推广费用
  • 上海社保网站哪里做转入seo文章优化方法
  • 搭建本地网站设计网站一般多少钱
  • 西安网站建设报价方案软文是啥意思
  • 建设网站服务器百度推广天天打骚扰电话
  • 三合一网站制作价格怎样策划一个营销型网站
  • 自己的域名怎么做网站进入百度app
  • 重庆网站建设cav手机在线精品
  • 做摄影和后期的兼职网站广告推销网站
  • 个人网页主页seo 优化 服务
  • 手机网站在后台怎么做编辑百度推广代理怎么加盟
  • 单人做网站需要掌握哪些知识内江seo
  • 东阳网站建设个人怎么做网络推广
  • 返利淘网站怎么做广州推广排名
  • 广告公司seo是什么职位seo上排名
  • 绥化市建设局网站发软文是什么意思
  • 做网站多少钱zwnet河北百度代理公司
  • 做云盘网站哪个好电商代运营公司
  • win8网站模版网站怎么建设
  • 宠物网站页面设计css网站 推广
  • salient wordpressseo资源是什么意思
  • 关于网络营销的网站百度助手下载安装
  • 苏州公司网站建设价格持续优化完善防控措施
  • 百度搜索推广流程英文谷歌seo
  • 虫虫wap建站源码全媒体运营师报考官网在哪里
  • 建湖专业做网站网络营销和传统营销的区别和联系
  • 海珠区建网站企业营销策划及推广
  • 南阳网站建设多少钱互联网营销师考证多少钱
  • 漂亮的网站设计谷歌首页
  • 网站的优点和缺点互联网营销的方法有哪些