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

iis如何用ip地址做域名访问网站小红书关键词排名

iis如何用ip地址做域名访问网站,小红书关键词排名,在线咨询免费,网站建设扌金手指六六目录 说在前面场景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.zhongyajixie.com/news/31443.html

相关文章:

  • wordpress限制登录设备网站优化推广排名
  • 做网站阿里巴巴好还是百度好关键词指数查询工具
  • 做网站业务宁波seo优化费用
  • 网站建设宣传词一链一网一平台
  • b站有没有推广优秀营销软文范例500字
  • 电影网站开发PPT模板网络推广公司运作
  • 济源网站建设公司百度云搜索引擎官网入口
  • 定制型网站建设推广数字化营销
  • 杭州网站建设电话石嘴山网站seo
  • 知名电子商务网站有哪些网络营销总结
  • 知乎网站开发用的语言百度联盟一天多少收入
  • 有限公司在线网站广告设计需要学什么
  • 网站域名绑定破解营销网站seo推广
  • 网站建设需要学什么证百度app下载最新版本
  • layui响应式网站开发教程湖南正规关键词优化首选
  • 易语言怎么把网站音乐做进去好看的网站模板
  • 建设企业网站管理系统目的北京网络推广外包公司排行
  • 网站策划书如何做优化公司流程制度
  • 如何用网站做淘宝联盟河南做网站的公司
  • 免费网站现在是怎么了网盟推广是什么意思
  • 延吉网站建设网络推广工作内容怎么写
  • 做相册视频的网站全免费建立自己的网站
  • 深圳知名网站建设平台武汉网站开发公司
  • 谁有国外的黄色网站网络推广优化网站
  • 防疫网站网页设计搜索引擎营销原理
  • 汉南网站建设能让网络非常流畅的软件
  • 毕设做网站可以得高分吗杭州小程序建设公司
  • 网站关键词选择linux网站入口
  • 万网有网站建设吗桌子seo关键词
  • 门户网站的定义外链交易平台