Browse Source

http: add flushHeaders and deprecate flush

PR-URL: https://github.com/iojs/io.js/pull/1156
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Christian Tellnes <christian@tellnes.no>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
v1.8.0-commit
Yosuke Furukawa 10 years ago
committed by Ben Noordhuis
parent
commit
b2e00e38dc
  1. 4
      doc/api/http.markdown
  2. 6
      lib/_http_outgoing.js
  3. 20
      test/parallel/test-http-flush-headers.js

4
doc/api/http.markdown

@ -866,7 +866,7 @@ the client should send the request body.
Emitted when the request has been aborted by the client. This event is only
emitted on the first call to `abort()`.
### request.flush()
### request.flushHeaders()
Flush the request headers.
@ -875,7 +875,7 @@ call `request.end()` or write the first chunk of request data. It then tries
hard to pack the request headers and data into a single TCP packet.
That's usually what you want (it saves a TCP round-trip) but not when the first
data isn't sent until possibly much later. `request.flush()` lets you bypass
data isn't sent until possibly much later. `request.flushHeaders()` lets you bypass
the optimization and kickstart the request.
### request.write(chunk[, encoding][, callback])

6
lib/_http_outgoing.js

@ -630,10 +630,14 @@ OutgoingMessage.prototype._flush = function() {
};
OutgoingMessage.prototype.flush = function() {
OutgoingMessage.prototype.flushHeaders = function() {
if (!this._header) {
// Force-flush the headers.
this._implicitHeader();
this._send('');
}
};
OutgoingMessage.prototype.flush = util.deprecate(function() {
this.flushHeaders();
}, 'flush is deprecated. Use flushHeaders instead.');

20
test/parallel/test-http-flush-headers.js

@ -0,0 +1,20 @@
'use strict';
const common = require('../common');
const assert = require('assert');
const http = require('http');
const server = http.createServer();
server.on('request', function(req, res){
assert(req.headers['foo'], 'bar');
res.end('ok');
server.close();
});
server.listen(common.PORT, '127.0.0.1', function() {
let req = http.request({
method: 'GET',
host: '127.0.0.1',
port: common.PORT,
});
req.setHeader('foo', 'bar');
req.flushHeaders();
});
Loading…
Cancel
Save