中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

iis如何用ip地址做域名訪問網(wǎng)站汕頭seo快速排名

iis如何用ip地址做域名訪問網(wǎng)站,汕頭seo快速排名,裝飾公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站租服務(wù)器目錄 說在前面場景fbs服務(wù)器代碼前端typescript代碼問題 說在前面 操作系統(tǒng):Windows11node版本:v18.19.0typescript flatbuffer版本:24.3.25 場景 服務(wù)器(本文為golanggin)與前端通信時使用flatbuffer進(jìn)行序列化與反序列化通信協(xié)議為websock…

目錄

  • 說在前面
  • 場景
  • fbs
  • 服務(wù)器代碼
  • 前端typescript代碼
  • 問題

說在前面

  • 操作系統(tǒng):Windows11
  • node版本:v18.19.0
  • typescript flatbuffer版本:24.3.25

場景

  • 服務(wù)器(本文為golang+gin)與前端通信時使用flatbuffer進(jìn)行序列化與反序列化
  • 通信協(xié)議為websocket

fbs

  • 測試使用的flatbuffer schema如下:

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

    相對比較簡單,唯一復(fù)雜的地方在于使用了一個byte數(shù)組

  • 獲取flatc
    github release頁面下載對應(yīng)版本的二進(jìn)制程序,這里下載了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 
    

服務(wù)器代碼

  • 反序列化前端發(fā)來的數(shù)據(jù):
    func handleFbMsg(p []byte, ws *websocket.Conn) {// GetRootAsMsgWebsocket為生成的函數(shù),用于解析二進(jìn)制數(shù)據(jù)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:}
    }
    
  • 序列化要發(fā)給前端的數(shù)據(jù):
    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的序列化過程比較復(fù)雜,具體的例子可以參考官方文檔

前端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的序列化是目前見過最麻煩的了,其他大部分都是一個函數(shù)搞定
  • 前端反序列化出錯
    var buffer = new ByteBuffer(data.data)
    
    最開始是這行代碼,data是websocket的事件,data.data實際上是arraybuffer,需要轉(zhuǎn)換一下,
    var buffer = new ByteBuffer(new Uint8Array(data.data))
    
http://www.risenshineclean.com/news/59624.html

相關(guān)文章:

  • wordpress網(wǎng)站速度時快時慢seo網(wǎng)站優(yōu)化培訓(xùn)廠家報價
  • 如何使用記事本做網(wǎng)站狼雨的seo教程
  • oa報表網(wǎng)站開發(fā)淘寶客推廣一天80單
  • 衡陽商城網(wǎng)站建設(shè)seo刷關(guān)鍵詞排名免費(fèi)
  • 怎樣在手機(jī)做自己的網(wǎng)站企業(yè)培訓(xùn)體系
  • 靈臺縣住房和城鄉(xiāng)建設(shè)局網(wǎng)站品牌推廣方案
  • wordpress子頁面密碼錯誤東營seo
  • 福建建設(shè)執(zhí)業(yè)資格網(wǎng)站報名系統(tǒng)百度推廣后臺登錄入口官網(wǎng)
  • 貴港網(wǎng)站建設(shè)西地那非片說明書
  • 網(wǎng)站數(shù)據(jù)庫訂購新聞早知道
  • 網(wǎng)站建設(shè)入門到精通aso網(wǎng)站
  • iis 建網(wǎng)站手機(jī)訪問百度網(wǎng)站介紹
  • 做美容美發(fā)學(xué)校網(wǎng)站公司優(yōu)化水平
  • 天津視頻網(wǎng)站開發(fā)團(tuán)隊今日新聞國內(nèi)大事件
  • 個人網(wǎng)站可以做商業(yè)用途嗎愛站網(wǎng)怎么用
  • 石碣鎮(zhèn)網(wǎng)站仿做企業(yè)查詢免費(fèi)
  • 做音樂網(wǎng)站的目的和意義怎么推廣公眾號讓人關(guān)注
  • 17網(wǎng)站一起做網(wǎng)店可靠嗎百度指數(shù)的各項功能
  • 動態(tài)網(wǎng)站開發(fā)的集成軟件有哪些培訓(xùn)學(xué)校資質(zhì)辦理條件
  • wordpress 獲取js路徑巢湖seo推廣
  • 學(xué)院網(wǎng)站整改及建設(shè)情況報告web網(wǎng)頁制作成品
  • 移動端手機(jī)網(wǎng)站制作外國網(wǎng)站怎么進(jìn)入
  • 后臺管理網(wǎng)站建設(shè)谷歌推廣app
  • 專業(yè)網(wǎng)站建設(shè)系統(tǒng)淘大象關(guān)鍵詞排名查詢
  • 網(wǎng)站制作三站全網(wǎng)營銷推廣方案
  • 手機(jī)網(wǎng)站后臺語言南寧seo優(yōu)化公司
  • 做網(wǎng)站平臺公司一諾網(wǎng)絡(luò)推廣公司
  • iis 網(wǎng)站 優(yōu)化免費(fèi)域名注冊官網(wǎng)
  • 網(wǎng)站未做安全隱患檢測怎么拿shellseo的培訓(xùn)課程
  • 江蘇官網(wǎng)建設(shè)公司代碼優(yōu)化