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>
This commit is contained in:
Yosuke Furukawa 2015-03-14 16:24:07 +09:00 коммит произвёл Ben Noordhuis
Родитель 68d4bed2fd
Коммит b2e00e38dc
3 изменённых файлов: 27 добавлений и 3 удалений

Просмотреть файл

@ -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])

Просмотреть файл

@ -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.');

Просмотреть файл

@ -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();
});