Skip to content

Instantly share code, notes, and snippets.

@stash
Created January 31, 2012 19:18
Show Gist options
  • Select an option

  • Save stash/1712295 to your computer and use it in GitHub Desktop.

Select an option

Save stash/1712295 to your computer and use it in GitHub Desktop.
No 'drain' for HTTPS servers
var fs = require('fs');
var path = require('path');
var https = require('https');
var http = require('http');
var pem = fs.readFileSync(path.resolve(__dirname,'./test.pem'));
var util = require('util');
var protocol = process.argv[2] == 'http' ? http : https;
var agent = new protocol.Agent();
var server = protocol === https ? https.createServer({
key: pem, cert: pem, ca: pem
}) : http.createServer();
server.on('request', handleRequest);
server.on('listening', doRequest);
server.listen(9999);
function doRequest() {
var req = protocol.request({host:'localhost',port:9999,method:'POST',agent:agent});
req.on('response', function(res) {
res.on('end', function() {
console.error('client response end');
process.exit(0);
});
res.on('data', function() { console.error('client response data'); });
res.on('end', function() { console.error('client response end'); });
res.on('error', function(err) { console.error('client response err',err); });
});
req.on('error', function(err) { console.error('client request err',err); });
req.on('drain', function() { console.error('client request drain'); });
req.write(new Buffer('abcd=efgh'));
req.end();
}
function handleRequest(req,res) {
console.error('server request');
req.on('drain', function() { console.error('server request drain'); });
req.on('end', function() {
console.error('server request end');
res.writeHead(200, {'content-type':'text/plain'});
res.write(new Buffer("["));
res.write(new Buffer('{"rec":"one"}\n'));
res.once('drain', function() {
console.error('server response drained');
res.end();
});
});
}
setTimeout(function() {
console.error('timeout!');
process.exit(1);
},10000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment