0
我有一個服務器和一個客戶端用nodejs設置。服務器使用socket.io-stream將文件發送到客戶端。當文件被傳輸時,我想在客戶端開始使用它。爲此,我正在聆聽流的「結束」事件。 我的代碼有效,但只有一次。在我發送的第一個文件中,事件被觸發,但不在下一個文件中。在第一個文件後,下一個文件被破壞並且是0字節。Stream.pipe事件'結束'在Nodejs上只觸發一次socket.io-stream
server.js
socketObj.emit('order', orderData);
ss(socketObj).on('file', function(stream) {
fs.createReadStream('./uploads/'+ orderData.file.name +'').pipe(stream);
});
client.js
socket.on('order', function(data) {
var stream = ss.createStream();
ss(socket).emit('file', stream);
stream.pipe(fs.createWriteStream(data.file.name));
stream.on('end', function(){
doSomeStuff(data); //This function is called only once
});
});
我一直在使用 '端' 和 '結束' 事件,設定自動關閉的真假嘗試,使用stream.close( )和stream.end(),但沒有任何工作。對我來說就像某些東西沒有正確重置。
感謝您的回答,但我得到了相同的行爲。 – Domingo