8
C'è un modo per impostare una modalità o un valore in connessione o esprimere per simulare gli upload di file lenti ??Expressjs/connect - Simula il caricamento lento dei file
C'è un modo per impostare una modalità o un valore in connessione o esprimere per simulare gli upload di file lenti ??Expressjs/connect - Simula il caricamento lento dei file
In primo luogo, installare node-limiter
quindi creare un flusso Transform
che strozzare qualsiasi Stream
s:
var util = require('util');
var Transform = require('stream').Transform;
var TokenBucket = require('limiter').TokenBucket;
function BucketStream(rate, interval, parentBucket, options) {
Transform.call(this, options);
this.bucket = new TokenBucket(Number.POSITIVE_INFINITY, rate, interval, parentBucket);
}
util.inherits(BucketStream, Transform);
BucketStream.prototype._transform = function(chunk, encoding, callback) {
this.bucket.removeTokens(chunk.length, function(err) {
callback(err, chunk);
});
};
Quindi la richiesta è un ReadableStream
:
var bucketStream = new BucketStream(1024 * 500, 'second'); // 500KB/sec
req.pipe(bucketStream);
Ora leggere da bucketStream
(invece che da req) Velocemente quanto vuoi, riceverai solo 500KB/sec
Ho fatto t il suo in cima alla mia testa quindi attenzione :)
Questo è stato chiesto prima qui: http://stackoverflow.com/questions/5999882/how-would-i-limit-upload-speed-from-the-server- in-node-js –