【发布时间】:2022-01-24 07:08:32
【问题描述】:
我正在开发一个带有一些自定义视频流行为的 Node-JS 服务器。
服务器将文件公开为根路径localhost:3000/ 上的流并侦听范围请求。在前端有一个 html5 视频播放器,我通过记录注意到,当您在时间轴上擦洗时,从范围值 current-byte to total-bytes 请求。
现在我只是将文件流传送到响应中。
我的方案要求我查询有关文件的另一个进程,并且只向下传输它允许我访问的文件部分。现在我的问题是,如果播放器请求例如从字节 0 到 1000 并且我以 0 到 100 响应并且我设置如下标题,播放器是否会理解它没有获得所需的完整数据并发出任何后续请求。
const range = fromOtherProcess(); // the other process told me this range is allowed
response.statusCode = 206; // parital content
response.setHeader('Content-Length', range.end - range.start + 1);
response.setHeader('Content-Range', 'bytes ' + range.start + '-' + range.end + '/' + size);
【问题讨论】:
标签: javascript node.js http html5-video