成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

如何在Node.js的httpServer中接收前端發(fā)送的arraybuffer數(shù)據(jù)

DirtyMind / 1095人閱讀

摘要:最近使用了進(jìn)行數(shù)據(jù)交互,發(fā)送在接收前端的二進(jìn)制數(shù)據(jù)出現(xiàn)了數(shù)據(jù)錯(cuò)誤等問題。后來發(fā)現(xiàn)思路上面的問題,在事件中的處理不適當(dāng)才引發(fā)數(shù)據(jù)錯(cuò)亂。

最近使用了protobuf進(jìn)行數(shù)據(jù)交互,發(fā)送在node.js接收前端的二進(jìn)制數(shù)據(jù)出現(xiàn)了數(shù)據(jù)錯(cuò)誤等問題。后來發(fā)現(xiàn)思路上面的問題,在req.on("data",()=>{})事件中的處理不適當(dāng)才引發(fā)數(shù)據(jù)錯(cuò)亂。借此發(fā)

我先直接貼正確接收二進(jìn)制數(shù)據(jù)代碼

const server = http.createServer((req, res) => {
        if(req.method==="OPTIONS"){
            res.setHeader("Access-Control-Allow-Origin", "*");
            res.statusCode=200;
        }
        if(req.method==="POST"){
          // 存儲(chǔ)數(shù)組空間
          let msg=[];
          // 接收到數(shù)據(jù)消息
          req.on("data",(chunk)=>{
            if(chunk){
              msg.push(chunk);
            }
          })
          // 接收完畢
          req.on("end",()=>{
            // 對(duì)buffer數(shù)組陣列列表進(jìn)行buffer合并返回一個(gè)Buffer
            let buf=Buffer.concat(msg);
            conosole.log(buf)//提取Buffer正確
          })                  
}    
});
server.listen(3000,"127.0.0.1");

在nodejs中接收buffer數(shù)據(jù)需要以數(shù)組陣列的方式存儲(chǔ)然后通過buffer.concat對(duì)數(shù)組陣列合并創(chuàng)建新的arraybuffer。這樣就正確的接收二進(jìn)制數(shù)據(jù)了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/99164.html

相關(guān)文章

  • 你不知道 XMLHttpRequest

    摘要:默認(rèn)參數(shù)為空字符串密碼,可選參數(shù),用于授權(quán)。默認(rèn)參數(shù)為空字符串備注如果不是有效的方法或地址不能被成功解析,將會(huì)拋出異常如果請(qǐng)求方法不區(qū)分大小寫為或?qū)?huì)拋出異常重寫由服務(wù)器返回的類型。 本文詳細(xì)介紹了 XMLHttpRequest 相關(guān)知識(shí),涉及內(nèi)容: AJAX、XMLHTTP、XMLHttpRequest詳解、XMLHttpRequest Level 1、Level 2 詳解 XHR...

    ckllj 評(píng)論0 收藏0
  • vue2.0開發(fā)聊天程序(六) 服務(wù)端webScoket

    大吉大利,今晚吃雞!                   - PUBG 時(shí)隔多日,終于再次拾起這個(gè)拖了很久的項(xiàng)目。并不是因?yàn)闆]時(shí)間,也不是因?yàn)檫@個(gè)項(xiàng)目對(duì)于我來說有多困難,就是一個(gè)字————懶。此項(xiàng)目的后臺(tái),當(dāng)然是選擇node.js來實(shí)現(xiàn)。作為一個(gè)前端,node.js比起java、php簡(jiǎn)單多了。 node支持的webSocket 在npm中有很多支持webSocket的模塊,包括socket.io...

    hiyayiji 評(píng)論0 收藏0
  • WebSocket系列之二進(jìn)制數(shù)據(jù)設(shè)計(jì)與傳輸

    摘要:本文作為系列的第四篇內(nèi)容,將會(huì)用一個(gè)簡(jiǎn)單的聊天應(yīng)用把整個(gè)傳輸二進(jìn)制數(shù)據(jù)類型的內(nèi)容連接起來,讓用戶對(duì)整個(gè)傳輸二進(jìn)制數(shù)據(jù)的方法有個(gè)了解。如何發(fā)送二進(jìn)制數(shù)據(jù)通過如何設(shè)計(jì)一個(gè)二進(jìn)制協(xié)議一章,我們知道了如何定義傳輸?shù)亩M(jìn)制數(shù)據(jù)格式。 概述 通過前三篇博客,我們能夠了解在通過WebSocket發(fā)送數(shù)據(jù)之前,我們需要傳遞的數(shù)據(jù)是如何變成ArrayBuffer二進(jìn)制數(shù)據(jù)的;在我們收到二進(jìn)制數(shù)據(jù)之后,我...

    amc 評(píng)論0 收藏0
  • AJAX 進(jìn)階使用(Blob、ArrayBuffer、FormData、Document、JSON

    摘要:讓應(yīng)用程序擁有異步讀取存儲(chǔ)在用戶計(jì)算機(jī)上文件或原始數(shù)據(jù)緩沖區(qū)的能力,使用或?qū)ο笾付ㄒx取的文件或數(shù)據(jù)。對(duì)象用來表示通用的固定長(zhǎng)度的原始二進(jìn)制數(shù)據(jù)緩沖區(qū)。事實(shí)上,沒有名為的全局對(duì)象,也沒有一個(gè)名為的構(gòu)造函數(shù)。 Ajax 即 Asynchronous Javascript And XML (異步 JavaScript 和 XML),是指一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開發(fā)技術(shù)。在無(wú)需重新加載整...

    wean 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

DirtyMind

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<