Ping a stream once in while. If it times out destroy it
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
README.md
index.js
package.json
test.js

README.md

pingable

Ping a stream once in a while. If the ping times out the stream will be destroyed.

npm install pingable

Usage

var pingable = require('pingable');

pingable(stream, {
    interval: 15000, // how often should we ping it,
    timeout: 5000    // whats the ping timeout?
}, function(cb) {
    // do the ping somehow
    stream.write('ping');

    // when the ping is completed call the cb
    stream.once('data', function() {
        cb();
    });
});

stream.on('close', function() {
    // if the ping fails stream.destroy will be called
    // which usually triggers a close
});

If you are streaming some sort of protocol thats supports a ping just do

pingable(stream, opts, function(cb) {
    stream.ping(cb);
});

License

MIT