Gcina izimpendulo zezithombe ze-binary ku-proxy ye-Node.js
Hambisa imizimba ye-binary nge-Node forward proxy futhi ugcine ukukhishwa kombhalo kuphela ezinguqulweni zombhalo ezenziwe ngamabomu.
const { pipeline } = require('node:stream');
pipeline(upstreamResponse, clientResponse, (error) => {
if (error) console.error('Proxy response failed:', error);
});
Sebenzisa le ndlela yomzimba ngemva kokukhetha umgomo, isicelo esiya phezulu kanye nokulungiselela isimo namakhanda aya phansi. Ama-stream e-Node ngokuvamile anikeza i-Buffer; ungawaqoqi ku-string ezithombeni noma kokunye okuqukethwe kwe-binary okungashintshi.
pipeline ixhumanisa ingcindezi yangemuva futhi isabalalise ukwehluleka. Ekhoneni lingacekela phansi indawo ekuyiwa kuyo, ngakho ungacabangi ukuthi enye impendulo yephutha le-HTTP ingathunyelwa ngemva kwalokho. Le ngxenye ayiyona iseva ephelele ye-proxy.
Kumabhayithi adlulayo, gcina imethadatha yokumelwa efanele njengohlobo lwemidiya nokufakwa kwekhodi kokuqukethwe, futhi uphathe izinkambu eziqondene ne-hop ngemithetho yokudlulisa. Ukuqhathanisa amabhayithi e-gzip namakhanda empendulo ahambisanayo kukhombisa ukukhetha phakathi kokumelwa okufakwe ikhodi nokukhishwe ikhodi.
Ukubhala kabusha i-HTML ngamabomu kudinga enye indlela: bona uhlobo lwemidiya, phatha ukucindezelwa nesethi yezinhlamvu, guqula umbhalo futhi ukhiqize imethadatha yamabhayithi amasha. I-Content-Length endala ayikwazi ukuchaza umzimba oshintshile.
Buffer.concat ingagcina okuqukethwe kwe-binary lapho kudingeka ukugcwalisa ngokuphelele, kodwa igcina wonke umzimba enkumbulweni. I-stream yesithombe edlulayo ayidingi lezo zindleko.