/ piacw.com / dev / final / node_modules / stream-http /

[ICO]NameLast modifiedSizeDescription
[PARENTDIR]Parent Directory  -  
[DIR]lib/2 years ago -  
[DIR]test/2 years ago -  
[   ]LICENSE2 years ago1.1K0fb859dc fixed mobile overflwo options [كارل مبارك]
[TXT]README.md2 years ago7.0K0fb859dc fixed mobile overflwo options [كارل مبارك]
[   ]ie8-polyfill.js2 years ago4.8K0fb859dc fixed mobile overflwo options [كارل مبارك]
[   ]index.js2 years ago1.8K0fb859dc fixed mobile overflwo options [كارل مبارك]
[   ]package.json2 years ago2.0K0fb859dc fixed mobile overflwo options [كارل مبارك]
README.md

stream-http Build Status

Sauce Test Status

This module is an implementation of Node's native http module for the browser. It tries to match Node's API and behavior as closely as possible, but some features aren't available, since browsers don't give nearly as much control over requests.

This is heavily inspired by, and intended to replace, http-browserify.

What does it do?

In accordance with its name, stream-http tries to provide data to its caller before the request has completed whenever possible.

Backpressure, allowing the browser to only pull data from the server as fast as it is consumed, is supported in:

The following browsers support true streaming, where only a small amount of the request has to be held in memory at once:

The following browsers support pseudo-streaming, where the data is available before the request finishes, but the entire response must be held in memory:

All browsers newer than IE8 support binary responses. All of the above browsers that support true streaming or pseudo-streaming support that for binary data as well except for IE10. Old (presto-based) Opera also does not support binary streaming either.

IE8 note:

As of version 2.0.0, IE8 support requires the user to supply polyfills for Object.keys, Array.prototype.forEach, and Array.prototype.indexOf. Example implementations are provided in ie8-polyfill.js; alternately, you may want to consider using es5-shim. All browsers with full ES5 support shouldn't require any polyfills.

How do you use it?

The intent is to have the same API as the client part of the Node HTTP module. The interfaces are the same wherever practical, although limitations in browsers make an exact clone of the Node API impossible.

This module implements http.request, http.get, and most of http.ClientRequest and http.IncomingMessage in addition to http.METHODS and http.STATUS_CODES. See the Node docs for how these work.

Extra features compared to Node

This module has to make some tradeoffs to support binary data and/or streaming. Generally, the module can make a fairly good decision about which underlying browser features to use, but sometimes it helps to get a little input from the developer.

Features missing compared to Node

Example

http.get('/bundle.js', function (res) {
    var div = document.getElementById('result');
    div.innerHTML += 'GET /beep<br>';

    res.on('data', function (buf) {
        div.innerHTML += buf;
    });

    res.on('end', function () {
        div.innerHTML += '<br>__END__';
    });
})

Running tests

There are two sets of tests: the tests that run in Node (found in test/node) and the tests that run in the browser (found in test/browser). Normally the browser tests run on Sauce Labs.

Running npm test will run both sets of tests, but in order for the Sauce Labs tests to run you will need to sign up for an account (free for open source projects) and put the credentials in a .zuulrc file.

To run just the Node tests, run npm run test-node.

To run the browser tests locally, run npm run test-browser-local and point your browser to http://localhost:8080/__zuul

License

MIT. Copyright (C) John Hiesey and other contributors.

Apache/2.4.38 (Debian) Server at www.karls.computer Port 80