Ist dieser Code HTTP / 1.1 gültig?
%Vor%Ich glaube, ich verstoße gegen HTTP / 1.1 hier? Textdateien scheinen gut zu funktionieren, aber das könnte Zufall sein. Ist meine Kopfzeile "200 OK" oder muss sie "100" sein? Ist ein Header ausreichend?
Wenn Sie Chunked-Transfer-Codierung durchführen, müssen Sie diesen Header tatsächlich festlegen:
Transfer-Encoding: chunked
Sie können anhand der von google zurückgegebenen Header sehen, welche Chunked-Übertragungen für die Startseite und höchstwahrscheinlich andere Seiten enthält:
%Vor%BEARBEITEN Ja, das Lesen ist viel zu kompliziert:
%Vor% Da geht's, ein schöner Stream-Puffer, mit dem Sie schreiben können. Hier ist ein Blogbeitrag, den ich über verschiedene Wege zum Einlesen von Dateien geschrieben habe. Ich empfehle, das zu überprüfen, damit Sie sehen können, wie Sie am besten mit Dateien in der asynchronen Umgebung des Knotens arbeiten können.
Warum machen Sie alle fs
-Operationen manuell? Sie wären wahrscheinlich besser dran mit der fs.createReadStream()
-Funktion.
Ich vermute, dass Chrome erwartet, dass Sie einen 206
-Antwortcode zurückgeben. Überprüfen Sie req.headers.range
und prüfen Sie, ob Chrome einen "Bereich" der Mediendatei erwartet, die zurückgegeben werden soll. Wenn dies der Fall ist, müssen Sie nur den Teil der Datei zurücksenden, der vom Webbrowser angefordert wurde.
Warum erfinden Sie das Rad neu? Es gibt Unmengen von Knotenmodulen, die solche Dinge für Sie erledigen. Probieren Sie Connect / Express ' static
Middleware. Viel Glück!
Tags und Links node.js