Skip to content

Instantly share code, notes, and snippets.

@dstokes
Created May 14, 2014 23:43
Show Gist options
  • Save dstokes/dc60cbb96f1e18fe1687 to your computer and use it in GitHub Desktop.
Save dstokes/dc60cbb96f1e18fe1687 to your computer and use it in GitHub Desktop.
multilevel runaway read stream
var net = require('net');
var ml = require('multilevel');
var db = require('level')('./db');
// monkey patch db read stream method
var stream;
var createReadStream = db.createReadStream;
db.createReadStream = function () {
stream = createReadStream.apply(this, arguments);
return stream;
}
var server = ml.server(db);
net.createServer(function (c) {
c.pipe(server).pipe(c);
}).listen(3000);
var client = ml.client();
var conn = net.connect(3000);
conn.pipe(client.createRpcStream()).pipe(conn);
client.batch([
{ type: 'put', key: 'a', value: "1" },
{ type: 'put', key: 'b', value: "2" },
{ type: 'put', key: 'c', value: "3" }
], function (err) {
client.createReadStream()
.on('data', function(data){
conn.destroy();
stream.on('data', function () {
throw new Error('Read stream emitted after connection failure');
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment