前情提要
后台有個語音流需要傳給前端,注意,不是語音文件。如果是語音文件的話,可以直接使用這個chunked參數,實現視頻或者音頻的分段播放。
現在的問題是我們是拿到的一個音頻流,要傳給前端還必須是keep-alive模式。經過nginx轉發的時候,nginx默認開啟了chunked這個模塊,造成的結果是前端用vedio原生組件接這個音頻流,沒有進度條。
為了實現有進度條,我們需要在響應頭里面包含content-range、content-length這幾個頭,而content-length又和transfer-encoding頭沖突了,所以造成了沒有進度條的問題。
百度+谷歌
找資料如下:
-
第一步找資料,看為什么content-length沒有生效,發現是transfer-encoding分段傳輸的問題
取消掉Transfer-Encoding:chunked
Nginx與HTTP協議,content-length -
第二部找資料,關閉transfer-encoding或者客戶端請求使用http1.0
nginx配置關閉chunked
解決方案
一行代碼關閉chunked
chunked_transfer_encoding off;
