const { pipeline } = require('node:stream');

pipeline(upstreamResponse, clientResponse, (error) => {
  if (error) console.error('Proxy response failed:', error);
});

ប្រើផ្លូវតួនេះបន្ទាប់ពីជ្រើសរើសគោលដៅ សំណើទៅដើមទឹក និងការរៀបចំស្ថានភាព និងក្បាលទៅចុងទឹក។ ស្ទ្រីម Node ជាធម្មតាផ្តល់ Buffer; កុំប្រមូលពួកវាទៅជាខ្សែអក្សរសម្រាប់រូបភាព ឬមាតិកាគោលពីរផ្សេងទៀតដែលមិនផ្លាស់ប្តូរ។

pipeline សម្របសម្រួលសម្ពាធថយក្រោយ និងផ្សព្វផ្សាយការបរាជ័យ។ វាអាចបំផ្លាញគោលដៅនៅពេលមានកំហុស ដូច្នេះកុំសន្មតថាអាចផ្ញើការឆ្លើយតបកំហុស HTTP ផ្សេងទៀតបន្ទាប់ពីនោះ។ បំណែកនេះមិនមែនជាម៉ាស៊ីនបម្រើប្រូកស៊ីពេញលេញទេ។

សម្រាប់បៃដែលឆ្លងកាត់ សូមរក្សាទុកទិន្នន័យមេតាតំណាងពាក់ព័ន្ធ ដូចជាប្រភេទមេឌៀ និងការអ៊ិនកូដមាតិកា ហើយដោះស្រាយវាលជាក់លាក់នៃ hop តាមច្បាប់បញ្ជូនបន្ត។ ការប្រៀបធៀប បៃ gzip និងក្បាលឆ្លើយតបដែលត្រូវគ្នា បង្ហាញជម្រើសរវាងតំណាងដែលបានអ៊ិនកូដ និងបានឌិកូដ។

ការសរសេរ HTML ឡើងវិញដោយចេតនាត្រូវការផ្លូវផ្សេង៖ ស្គាល់ប្រភេទមេឌៀ ដោះស្រាយការបង្ហាប់ និងសំណុំតួអក្សរ បំប្លែងអត្ថបទ និងបង្កើតទិន្នន័យមេតាសម្រាប់បៃថ្មី។ Content-Length ចាស់មិនអាចពិពណ៌នាតួដែលបានផ្លាស់ប្តូរបានទេ។

Buffer.concat អាចរក្សាមាតិកាគោលពីរនៅពេលត្រូវការបឺហ្វឺពេញលេញ ប៉ុន្តែរក្សាតួទាំងមូលក្នុងអង្គចងចាំ។ ស្ទ្រីមរូបភាពដែលឆ្លងកាត់មិនត្រូវការការចំណាយនោះទេ។

អត្ថបទពាក់ព័ន្ធ