Average speed

This commit is contained in:
Panayiotis Lipiridis 2021-02-07 15:51:12 +02:00
parent 6540c5460e
commit aaf4943fa3

View File

@ -1,5 +1,19 @@
const IMAGE_URL = `${process.env.REACT_APP_SOCKET_SERVER_URL}/test256.png`; const IMAGE_URL = `${process.env.REACT_APP_SOCKET_SERVER_URL}/test256.png`;
const IMAGE_SIZE_BITS = 141978 * 8; const IMAGE_SIZE_BITS = 141978 * 8;
const AVERAGE_MAX = 4;
const speedHistory: number[] = [];
const pushSpeed = (speed: number): void => {
speedHistory.push(speed);
if (speedHistory.length > AVERAGE_MAX) {
speedHistory.shift();
}
};
const getAverageSpeed = (): number => {
return speedHistory.reduce((a, b) => a + b) / speedHistory.length;
};
const getSpeedBits = ( const getSpeedBits = (
imageSize: number, imageSize: number,
@ -20,7 +34,8 @@ const processImage = (): Promise<number> => {
image.onload = () => { image.onload = () => {
endTime = new Date().getTime(); endTime = new Date().getTime();
const speed = getSpeedBits(IMAGE_SIZE_BITS, startTime, endTime); const speed = getSpeedBits(IMAGE_SIZE_BITS, startTime, endTime);
resolve(speed); pushSpeed(speed);
resolve(getAverageSpeed());
}; };
image.onerror = () => { image.onerror = () => {
@ -31,6 +46,7 @@ const processImage = (): Promise<number> => {
image.src = `${IMAGE_URL}?t=${startTime}`; image.src = `${IMAGE_URL}?t=${startTime}`;
}); });
}; };
export const getNetworkSpeed = async (): Promise<number> => { export const getNetworkSpeed = async (): Promise<number> => {
return await processImage(); return await processImage();
}; };