Browse Source

doc: add full example for zlib.flush()

Add a full example using `zlib.flush()` for the common use
case of writing partial compressed HTTP output to the client.

PR-URL: https://github.com/nodejs/node/pull/6172
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Robert Jefe Lindstädt <robert.lindstaedt@gmail.com>
v4.x
Anna Henningsen 9 years ago
committed by Myles Borins
parent
commit
d069f2de8c
  1. 31
      doc/api/zlib.markdown

31
doc/api/zlib.markdown

@ -155,6 +155,36 @@ fewer calls to zlib, since it'll be able to process more data in a
single `write` operation. So, this is another factor that affects the
speed, at the cost of memory usage.
## Flushing
Calling [`.flush()`][] on a compression stream will make zlib return as much
output as currently possible. This may come at the cost of degraded compression
quality, but can be useful when data needs to be available as soon as possible.
In the following example, `flush()` is used to write a compressed partial
HTTP response to the client:
```js
const zlib = require('zlib');
const http = require('http');
http.createServer((request, response) => {
// For the sake of simplicity, the Accept-Encoding checks are omitted.
response.writeHead(200, { 'content-encoding': 'gzip' });
const output = zlib.createGzip();
output.pipe(response);
setInterval(() => {
output.write(`The current time is ${Date()}\n`, () => {
// The data has been passed to zlib, but the compression algorithm may
// have decided to buffer the data for more efficient compression.
// Calling .flush() will make the data available as soon as the client
// is ready to receive it.
output.flush();
});
}, 1000);
}).listen(1337);
```
## Constants
<!--type=misc-->
@ -378,4 +408,5 @@ Decompress a Buffer or string with Unzip.
[Inflate]: #zlib_class_zlib_inflate
[InflateRaw]: #zlib_class_zlib_inflateraw
[Unzip]: #zlib_class_zlib_unzip
[`.flush()`]: #zlib_zlib_flush_kind_callback
[Buffer]: buffer.html

Loading…
Cancel
Save