1 回答

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
沒(méi)有任何神奇的標(biāo)頭可以讓它在 Node.js 中工作。如果有時(shí)有效,而有時(shí)請(qǐng)求花費(fèi)的時(shí)間太長(zhǎng),則服務(wù)器可能會(huì)由于速率限制而默默地丟棄請(qǐng)求。
我可以看出 PHP 是同步的,它將每個(gè)文件一個(gè)接一個(gè)地下載到內(nèi)存中,然后放入一個(gè)文件中,而在 Node.js 中,您可以立即觸發(fā)每個(gè)請(qǐng)求并立即處理所有請(qǐng)求,將內(nèi)容流式傳輸?shù)轿募?。接收到亂序數(shù)據(jù)包是正常的,TCP 協(xié)議可確保它們重新組合在一起。Node.js 能夠執(zhí)行類(lèi)似的操作,您很可能會(huì)遇到服務(wù)器的安全功能或其他限制。
如果時(shí)間不是問(wèn)題,我建議修改 Node.js 來(lái)減慢請(qǐng)求速度,可以通過(guò)限制并發(fā)請(qǐng)求的數(shù)量,也可以逐個(gè)執(zhí)行(最簡(jiǎn)單的選項(xiàng),請(qǐng)參閱 、promise、axios 庫(kù))async/await
。繼您的 Reddit 帖子之后,學(xué)習(xí) C++ 來(lái)完成這項(xiàng)任務(wù)很可能不會(huì)產(chǎn)生任何好處。事實(shí)上,這會(huì)困難幾個(gè)數(shù)量級(jí)。Node.js 是一個(gè)非常強(qiáng)大的平臺(tái),其功能遠(yuǎn)不止下載文件。
在不知道問(wèn)題的真正原因的情況下,除了嘗試分析您的請(qǐng)求并了解它們哪里出了問(wèn)題之外,我無(wú)法提供更多建議。
- 1 回答
- 0 關(guān)注
- 137 瀏覽
添加回答
舉報(bào)