Construir medidor de velocidad

Necesito construir un medidor de velocidad, típico de los que se encuentran en internet. Se preguntaran para que construir uno, si ya existen varios, bueno la finalidad es poder rescatar la hora del servidor, pero cuando estoy en el cliente, y necesito saber la velocidad para poder despejar el tiempo, ya que la distancia la obtendría por el numero de paquetes enviados, por ejemplo enviaría paquetes de un kilo por un lapso de 30 segundos.
¿Bueno alguien que pueda ayudarme con el código?, ya que la idea la tengo.
Respuesta
1
Es un pequeño js hecho por mi, se trata de inicializar un contador que sume 1 cada milisegundo (eso ya puedes cambiarlo tu con mínimos conocimientos). Cuando se carga la imagen se para de sumar al contador, y se muestran los milisegundos. La imagen la he sacado de google mismamente, del buscador de imágenes avanzado, pones tamaño grande o lo que quieras y te aparecerán.
La imagen esta ocupa 464k:
<body>
<script>
cont=0;
contador=setInterval("cont++",1);
</script>
<img src="" onload="clearInterval(contador);alert('La imagen tardó: '+cont+' milisegundos');" width="2048" height="2048">
</body>
Claro que si entra uno con un modem 56K y le pones a bajarse 400 k y pico pues se puede hartar. Luego ya tienes que jugar con divisiones y demás para calcular la velocidad media a la que se ha descargado en kb/sg si quieres.
Ok, pues ya sabes, yo no te puedo dar más información. Ya te imaginaras como lo hacen los de telefónica y demás, aunque es un poco lento. Con mi ejemplo se hace una "imitacion" en pequeña escala. Siento no haberte sido de ayuda ;)
La verdad tu solución ya se me había ocurrido y de una forma mucho más optima, precisamente manejando el ancho de banda de la conexión, la verdad yo necesito una solución más profesional, quizás por eso desde que publique mi duda a la fecha, solo tu hayas respondido algo, agradezco tu interés, pero la verdad necesito un medidor profesional
Por tus ganas de ayudar, así como yo lo he hecho, aunque a veces no se puede ayudar, igual te doy los puntos, ademas nadie más ni siquiera me dio una solución

1 respuesta más de otro experto

Respuesta
1
Te puedes construir un medidor de velocidad bastante sencillo desde un cliente de la siguiente forma:
<html>
<script>
var a = new Image();
function calcularvelocidad()
{
var tamanio = 3473; // bytes que ocupa la imagen.
var c= new Date();
var diferencia = (c.getTime()-b.getTime())/1000; // número de segundos que tarda.
alert (diferencia);
alert ("Esto va a " + tamanio/diferencia + " bps");
}
</script>
<body onload="calcularvelocidad()">
<script>
var b =new Date();
a.src="/maria/imgs/logoseo.gif";
</script>
</body>
</html>
Te explico un poco el funcionamiento:
El objeto es declarar una imagen de la que conocemos el tamaño.
El evento onload se lanzará una vez cargada la imagen por cómo funciona html y en esa función lo que se hace es hallar la diferencia en segundos entre la hora cuando se pidió la imagen y la hora cuando se acabó de recoger.
Acto seguido se divide entre el número de bytes, algo que sabíamos de antemano, y tenemos la velocidad en bytes/segundo.
Esta velocidad es aproximada y es una media. La precisión depende del tamaño de la imagen. Unos 5 kb de imagen dan una velocidad bastante aproximada.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas