我创建了简单的rest api以返回媒体文件
"start":"node server.js"
如果我致电http://127.0.0.1:3002/file.ogg
服务器读取文件1.ogg并作为响应返回。
现在我使用websocket从外部设备获取文件数据
var fs = require('fs')
var express = require('express')
var app = express()
app.get('/file.ogg', function (req, res) {
res.set({
'Content-Type': 'audio/ogg',
'Transfer-Encoding': 'chunked'
});
var inputStream = fs.createReadStream(__dirname + '/1.ogg');
inputStream.pipe(res);
});
var server = app.listen(3002);
我想像第一个例子一样返回数据(buf),但又不保存任何想法,我该怎么做。
答案 0 :(得分:0)
如果文件很大,则可能需要引入一个额外的Websocket流媒体库,该库可让您将数据流回到客户端。 socket.io-stream是专门为此创建的。从他们的例子中:
// send data
ss(socket).on('file', function(stream) {
fs.createReadStream('/path/to/file').pipe(stream);
});
// receive data
ss(socket).emit('file', stream);
stream.pipe(fs.createWriteStream('file.txt'));