Book Image

Node Cookbook: Second Edition

By : David Mark Clements
Book Image

Node Cookbook: Second Edition

By: David Mark Clements

Overview of this book

Table of Contents (18 chapters)
Node Cookbook Second Edition
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Implementing download throttling


Node provides pause and resume methods for incoming streams but not for outbound streams. Essentially, this means we can easily throttle upload speeds in Node, but download throttling requires a more creative solution.

Getting ready

We'll need a new server.js file along with a big enough file to serve. With the dd command-line program, we can generate a file for testing purposes, as follows:

dd if=/dev/zero of=50meg count=50 bs=1048576

The preceding command will create a 50 MB file named 50meg, which we'll be serving.

Note

For a similar Windows tool that can be used to generate a large file, check out http://www.bertel.de/software/rdfc/index-en.html.

How to do it...

To keep things as simple as possible, our download server will serve just one file, but we'll implement it in a way that allows us to easily plug in some router code to serve multiple files. First, we will require our modules and set up an options object for file and speed settings, as follows:

var http...