이 글에서는 온라인 동영상과 같은 대용량 파일을 자세히 읽을 수 있는 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 메서드를 통해 비디오 스트림을 가져온 다음 종료 이벤트를 바인딩합니다. 스트림이 끝까지 읽을 때 응답 요청을 종료하고 마지막으로 수행합니다. 파이프 방식을 통한 작은 덩어리 작은 블록 읽기. 여기서는 헤드 정보에 Content-Length 속성을 추가할 수 없습니다. 왜냐하면 이 속성을 세그먼트 단위로 읽어야 하기 때문입니다. 이 속성을 추가하면 브라우저는 요청이 끝났다고 판단하고 요청을 닫게 됩니다.
위 내용은 제가 여러분을 위해 정리한 내용입니다. 앞으로 도움이 되길 바랍니다.
관련 기사:
Javascript에서 원형 광고 배너를 구현하는 방법
Swiper 구성 요소를 사용하여 WeChat Mini 프로그램에서 이미지 전환 디스플레이를 구현하는 방법
Javascript에서 원형 광고 배너를 구현하는 방법
Vue의 디버깅 도구 vue-devtools 정보(자세한 튜토리얼)
Vue를 사용하여 통합 Iframe 페이지를 구현하는 방법
위 내용은 nodejs에서 대용량 파일을 읽는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!