Привет
proto.sendFile = function (dirname, filename) {
// Контекст this это res
var filename = filename ? dirname + filename : dirname
var file = new fs.ReadStream(filename)
file.on("error", function (err) {
console.log("Error reading file %s : %s", filename, err)
})
this.on("close", function () {
file.destroy()
})
file.pipe(this)
}
У меня не вызывается событие
close
для объекта
response
, а нужно оно мне, когда у пользователя скорость слабая и пользователь при отдаче половина файла, отключился, а если он отключится при отдаче половина файла, все это зависнет в памяти.
Или же это уже предусмотрено nodejs?
в объекте ReadStream есть свойство autoclose, может оно имеет значени?
ReadStream {
_readableState:
ReadableState {
objectMode: false,
highWaterMark: 65536,
buffer: [],
length: 0,
pipes: null,
pipesCount: 0,
flowing: null,
ended: false,
endEmitted: false,
reading: false,
sync: true,
needReadable: false,
emittedReadable: false,
readableListening: false,
defaultEncoding: 'utf8',
ranOut: false,
awaitDrain: 0,
readingMore: false,
decoder: null,
encoding: null },
readable: true,
domain: null,
_events: { end: [Function], error: [Function] },
_eventsCount: 2,
_maxListeners: undefined,
path: './config.js',
fd: null,
flags: 'r',
mode: 438,
start: undefined,
end: undefined,
autoClose: true,
pos: undefined }