我正在尝试使用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吗?
答案 0 :(得分:0)
data
是ArrayBuffer
,不是ReadableStream
。将data
排队等候ReadableStream
,传递给WritableStream
或TransformStream
,例如使用.pipeThrough()
,请参阅Receiving data via stdin and storing as a variable/array。