Verwenden Sie das folgende Skript, um die Internetgeschwindigkeit eines mit einem Netzwerk verbundenen Systems zu erkennen. Referenz javascript to detect internet speedJavascript - Erkennen von Internetgeschwindigkeit/Bandbreite
Allerdings sind die Geschwindigkeitsergebnisse sowohl bei https://fast.com/ als auch bei http://www.speedtest.net/ unterschiedlich.
var imageAddr = "http://www.kenrockwell.com/contax/images/g2/examples/31120037-5mb.jpg";
var downloadSize = 4995374; //bytes
function ShowProgressMessage(msg) {
if (console) {
if (typeof msg == "string") {
console.log(msg);
} else {
for (var i = 0; i < msg.length; i++) {
console.log(msg[i]);
}
}
}
var oProgress = document.getElementById("progress");
if (oProgress) {
var actualHTML = (typeof msg == "string") ? msg : msg.join("<br />");
oProgress.innerHTML = actualHTML;
}
}
function InitiateSpeedDetection() {
ShowProgressMessage("Loading the image, please wait...");
window.setTimeout(MeasureConnectionSpeed, 1);
};
if (window.addEventListener) {
window.addEventListener('load', InitiateSpeedDetection, false);
} else if (window.attachEvent) {
window.attachEvent('onload', InitiateSpeedDetection);
}
function MeasureConnectionSpeed() {
var startTime, endTime;
var download = new Image();
download.onload = function() {
endTime = (new Date()).getTime();
showResults();
}
download.onerror = function (err, msg) {
ShowProgressMessage("Invalid image, or error downloading");
}
startTime = (new Date()).getTime();
var cacheBuster = "?nnn=" + startTime;
download.src = imageAddr + cacheBuster;
function showResults() {
var duration = (endTime - startTime)/1000;
var bitsLoaded = downloadSize * 8;
var speedBps = (bitsLoaded/duration).toFixed(2);
var speedKbps = (speedBps/1024).toFixed(2);
var speedMbps = (speedKbps/1024).toFixed(2);
ShowProgressMessage([
"Your connection speed is:",
speedBps + " bps",
speedKbps + " kbps",
speedMbps + " Mbps"
]);
}
}
Der Punkt hier ist die Laufzeit der Videoqualität basierend auf der Internetverbindungsgeschwindigkeit des Benutzers zu ändern. Ich muss die Netzwerkgeschwindigkeit abrufen, sie an den Server weitergeben und basierend darauf wird die Videoqualität geändert.
Wie erreiche ich das Gleiche?
Beachten Sie, dass Sie die Downloadrate des Benutzers testen, indem Sie ihn zwingen, ein Image auf Ihrem Server herunterzuladen. Wenn der Benutzer weit davon entfernt ist, wird die Latenz hoch und die Downloadrate leidet darunter. Die Website speedtest.net verwendet den nächstgelegenen Server, um den Test auszuführen, und zeigt dem Benutzer die tatsächliche Latenzzeit für diesen Server an. Je nachdem, wo sich Ihr Benutzer auf dem Globus befindet, sollten Sie keine gute Latenz erwarten. –