我正在開發一個具有一些自定義視頻流行為的 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);
uj5u.com熱心網友回復:
如果你不能滿足請求的范圍,你想用 416 回應,并包含一個 Content-Range 標頭,告訴客戶端實際可滿足的范圍是什么。看
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/416
如果您真的要自己處理范圍請求,您可能需要閱讀 RFC。您需要優雅地處理格式錯誤的請求、未知單位、多個范圍等。我上面鏈接的頁面有一個指向當前 RFC 的鏈接。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/422468.html
標籤:
上一篇:即使在傳遞withCredentials時也無法在Angular中設定HeaderCookie:true
下一篇:python中的普羅尼克數
