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.

Izihloko ezihlobene