如何将json中的ArrayBuffer从js客户端发送到nodejs服务器?

时间:2017-08-12 20:23:02

标签: javascript node.js socket.io

我正在尝试使用socket.io将json类型的ArrayBuffer数据发送到我的服务器,如下所示:

socket.emit('record', {
       name: myUsername + '.wav',
       data: data //arraybuffer
 });

在服务器端,当我收到'记录'套接字中的事件,我从JSON获取数据并将其保存在 name 文件中,如下所示:

socket.on('record', function(message){
      var fileWriter = new wav.FileWriter(message.name, {
        channels: 1,
        sampleRate: 48000,
        bitDepth: 16
        });
      message.data.pipe(fileWriter);
    });

我正在使用 require(' wav')& 从npm请求(' stream')包。问题是我的服务器在message.data.pipe(fileWriter);上崩溃并出现此错误:

TypeError: message.data.pipe is not a function

我做错了什么?我可以在socket.io中发送像这样的ArrayBuffer吗?

1 个答案:

答案 0 :(得分:0)

dataArrayBuffer,不是ReadableStream。将data排队等候ReadableStream,传递给WritableStreamTransformStream,例如使用.pipeThrough(),请参阅Receiving data via stdin and storing as a variable/array