# Net Speed
Netspeed plugin is a basic Javascript Module used to check upload and download speed. 🚂🚋🚋🚋🚋
# Functionality
The library exposes two functions
- checkDownloadSpeed
- checkUploadSpeed
# checkDownloadSpeed
The checkDownloadSpeed accepts two arguments:
- The
baseUrl
- This refers to the url where the file is to be dowloaded from. This field is required to be of typeString
- The
fileSizeInBytes
- This refers to the size of the file to be downloaded. The file size is required to be of typeNumber
and should always be inBytes
.
The return value is an object which contains the download speed representation in
bits/second(bps)
,kolibits/second(kbs)
andmegabits/second (mbs)
.
# checkUploadSpeed
The checkUploadSpeed sends a randomly generated 20 kilobytes
data stream to a given server endpoint and uses that to calculate the speed. It accepts only one argument in the form of a JavaScipt object
- The
options
argument - This refers to the needed arguments in making a http request in node. The signature is as follows - The
fileSizeInBytes
- This refers to the size of the file to be uploaded. The file size is required to be of typeNumber
and should always be inBytes
.
const options = {
// The hostname where the request would be made
hostname: 'https://your-domain-name',
// The port of the host
port: 80,
// The endpoint available for uploading the data stream
path: '/speed-checker-upload',
// The http methos
method: 'POST',
headers: {
// Format being used. Currently we just send a json file stream
'Content-Type': 'application/json',
},
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
PS - The hostnames given here are for sample use.
# Usage
const NetworkSpeed = require('rovel.js').netspeed; // ES5
const testNetworkSpeed = new NetworkSpeed();
getNetworkDownloadSpeed();
async function getNetworkDownloadSpeed() {
const baseUrl = 'http://eu.httpbin.org/stream-bytes/50000000';
const fileSizeInBytes = 50000000;
const speed = await testNetworkSpeed.checkDownloadSpeed(baseUrl, fileSizeInBytes);
console.log(speed);
}
getNetworkUploadSpeed();
async function getNetworkUploadSpeed() {
const options = {
hostname: 'www.google.com',
port: 80,
path: '/catchers/544b09b4599c1d0200000289',
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
};
const fileSizeInBytes = 2000000
const speed = await testNetworkSpeed.checkUploadSpeed(options, fileSizeInBytes);
console.log(speed);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
← Fetch supports-colors →