nodejsは大きいファイル(オンライン動画)の読み込みを実現します。


nodejsはビデオの読み取りを行う時、読取画像のように一回ではなく、一部を読み取って一部に戻らなければならないので、クライアントの再生はクッションとして再生します。
古いルールは直接コードを貼って説明します。

var fs = require('fs'); 

function readBigFileEntry(filename, response) { 
path.exists(filename, function(exists) { 
if (!filename || !exists) { 
response.writeHead(404); 
response.end(); 
return; 
} 

var readStream = fs.ReadStream(filename); 

var contentType = 'none'; 
var ext = path.extname(filename); 
switch (ext) { 
case ".flv": 
contentType = "video/flv"; 
break; 
} 

response.writeHead(200, { 
'Content-Type' : contentType, 
'Accept-Ranges' : 'bytes', 
'Server' : 'Microsoft-IIS/7.5', 
'X-Powered-By' : 'ASP.NET' 
}); 



readStream.on('close', function() { 
response.end(); 
console.log("Stream finished."); 
}); 
readStream.pipe(response); 
}); 
}
fsモジュールのReadStream方式により、ビデオストリームを取得し、その後、閉じられたイベントをバインドする。ストリームが最後まで読み取られると、reponse要求を終了し、最後にpipe方式により、小さいサイズの読み取りを行う。ここのhead情報はContent-Length属性を追加できません。セグメント読み取りが必要なので、この属性を追加すると、ブラウザは要求が終了したと判断して要求を閉じます。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。