Speedtest - Upload

ev0lst

Erfahrenes Mitglied
Hallo zusammen,

ich sitze nun seit Tagen, fast schon Wochen an einer vernünftigen Lösung für einen Speedtest, der mir die Uploadgeschwindigkeit meiner DSL Leitung ermitteln soll. Zwar habe ich einige auch sehr gute Scripts gefunden, aber leider gab es immerwieder Nachteile bzw. Probleme. Oftmals wurde cgi oder sonst etwas genutzt.

Folgendes muss das Script können:
- Uploadgeschwindigkeit anzeigen
- Kein CGI oder sonstige Libs nutzen (php, javascript, ajax only)

Was die Downloadgeschwindigkeit angeht, habe ich bisher eine richtig gute Lösung gefunden. Nur beim Upload komme ich mal garnicht weiter.

Ich hoffe mir kann jemand einen Tipp oder vll. sogar Script zukommen lassen. Ich weiß mir wirklich nicht mehr zu helfen :(

Danke!
 
Und wie soll die Downloadgeschwindigkeit gemessen werden, wenn du jegliche Scriptsprachen, sowohl clientseitig als auch serverseitig, ausschließt?
HTML unterstützt soetwas nicht.
 
Hallo Felix,
danke für Deine Antwort. Ja, dass HTML sowas nicht kann, ist mir klar, wäre ja auch zu einfach. Ich meinte viel mehr, dass ich den Download bereits gelöst bekommen habe, entsprechend mit JS und php.

Wäre ein Upload mit php denn so schwer bzw. eingeschränkt? Ich meine, mir fehlt schon allein jeglicher Denkansatz für eine Lösung.

Genügt php, js für mein Anliegen nicht?

Danke!
 
OKay, aber wie löse ich den Upload aus? Wie kann ich eine Datei simulieren? Es soll ja ohne ein Upload-File direkt der Speed ermittelt werden.
 
Ich denke, man müsste mit JS einen AJAX-Request machen, der eine bestimmte Größe hat.

Ein Beispiel:
Javascript:
function GetUploadSpeed(bits)
{
  Str = "";
  for (i=0; i<bits; i++)
    Str .= "1";
  
  date = new Date();
  time1 = date.getMilliseconds();
  /* _Asynchronen_ AJAX-Request mit Str machen! */
  time2 = date.getMilliseconds();
}
GetUploadSpeed
Ich habe mal den eigentlichen Ajax-Request weggelassen, um Tipparbeit zu sparen :D
 
Zuletzt bearbeitet:
Naja, wenn du einen Ajax Request machst, wird dein Pseudocode nicht funktionieren. Also entweder muss es synchron sein, oder du musst den zweiten Messpunkt in die Callback-Funktion stecken.

Aber von der Idee her ist es wohl korrekt. Wenn man es genau machen will, sollte man den HTTP-Header bei der Geschwindigkeitsberechnung beachten.
Beim Download wird es eine Textdatei tun. Eine Serverseitige Sprache wird nicht nötig sein, kann aber nicht Schaden, um die Größe einfacher variieren zu können (man braucht nicht mehrere Textdateien).
 
Das klingt ja schonmal recht gut. Aber ihr müsst mir nochmal bei der Logik dahinter helfen. Also muss eine Dummy-Datei via ajax geladen werden? Klingt irgendwie logisch, aber klingt ebenso nach Downloadspeed-Ermittlung und nicht nach Uploadspeed. Vielleicht fehlt mir auch nur ein kleiner Denkanstoß.

Bitte erklärt mir nochmal wie welche Daten womit wohin gelanden. Ich glaube das würde helfen :)
Danke für eure Hilfe!
 
Du sendest ja bei einem Request Daten zum Server und bekommst auch eine Antwort. Also kannst du natürlich in beide Richtungen Messen. Wenn du in deiner Anfrage einen 1kB großen String mitsendest (z.B. als Post-Parameter), kannst du messen, wie lange es dauert, bis die Daten weg sind. Und umgekehrt kannst du ja auch eine 1kB große Datei anfordern und gucken, wann sie komplett da ist.
 
Schau mal wieviel in ein Cookie passt (glaub 4kb) und wieviele Möglich sind. Dann erstellst du welche für 1 MB (Overhead beachten: Cookiename, Gleichzeichen und Trennzeichen) und sendest die.

Eventuell steht dann in $_SERVER["REQUEST_TIME"] die Zeit vom Senden der ersten Zeile. Wann PHP startet holst dir mit microtime und so könntest du an die Geschwindigkeit kommen.

Eine Annäherung über Cookies ist auf jeden Fall möglich, sofern genügend rein passt.
 
Zuletzt bearbeitet:
Zurück