1.3.3 • Published 10 years ago

advanced-throttle v1.3.3

Weekly downloads
27
License
-
Repository
github
Last release
10 years ago

node-advanced-throttle

Node.js Transform stream that passes data through at n bytes per second and can be paused.

This module offers a Throttle passthrough stream class, it allows you to write data to it and it will be passed through in n bytes per second. It is also possible to pause and resume the steam. This can be used to send PCM Data to a speaker module in realtime.

Installation

$ npm install advanced-throttle

Example

Here's an example of throttling a file readstream at 80 bytes per second and outputting the data to stdout:

var Throttle = require('advanced-throttle');
var fs       = require('fs');

// create a "Throttle" instance that reads at 80 bytes per second
var throttle = new Throttle(80);
var in = fs.createReadStream('data.txt');
in.pipe(throttle).pipe(process.stdout);

// initialize the break after 80 bytes
setTimeout(function() {
    wait();
}, 1000);

// after 80 bytes wait 1 second for the user to read the text
function wait() {
    if (throttle.isStreamPaused()) {
        throttle.resumeStream();
    } else {
        throttle.pauseStream();
    }
    // either wait 1 second for the 80 bytes to be written or give the user the opportunity to read the text.
    setTimeout(function() {
        wait();
    }, 1000);
}

API

Throttle()

The Throttle passthrough stream class is very similar to the node core stream.Passthrough stream, except that you specify a bps "bytes per second" option and data will not be passed through faster than the byte value you specify.

You can invoke with just a bps Number and get the rest of the default options. This should be more common:

process.stdin.pipe(new Throttle(100 * 1024)).pipe(process.stdout);

Or you can pass an options Object in, with a bps value specified along with other options:

var t = new Throttle({ bps: 100 * 1024, chunkSize: 100, highWaterMark: 500 });

.pauseStream() : void

Pauses the stream but keeps storing data in the internal buffer.

.resumeStream() : void

Resumes the stream which will cause all stored data to be written out at the throttled speed.

.isStreamPaused() : boolean

Returns whether the stream is currently paused or running.

1.3.3

10 years ago

1.3.2

10 years ago

1.3.1

10 years ago

1.3.0

10 years ago

1.2.0

10 years ago

1.1.0

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago