រូបភាពដំណើរការលើការតភ្ជាប់ផ្ទាល់ដែលលឿន ប៉ុន្តែមិនពេញលេញតាមរយៈប្រូកស៊ីបញ្ជូនបន្តដែលយឺតជាង។ មូលហេតុដែលអាចកើតមានមួយគឺប្រភពបិទការតភ្ជាប់នៅពេលចម្លើយរបស់វាកំពុងត្រូវបានសរសេរ។

Netty I/O គឺអសមកាល។ ការត្រឡប់ពី writeAndFlush មិនមានន័យថាប្រតិបត្តិការនោះបានបញ្ចប់ទេ។ ដូច្នេះលំដាប់នេះមិនមានសុវត្ថិភាពសម្រាប់ចម្លើយដែលនៅមានបៃក្នុងជួរ៖

ctx.writeAndFlush(response);
ctx.close();

នៅពេលការផ្លាស់ប្តូរ HTTP ត្រូវបានបិទដោយចេតនាបន្ទាប់ពីសារឆ្លើយតបចុងក្រោយរបស់វា សូមភ្ជាប់ការបិទទៅ future នៃការសរសេរនោះ។

ctx.writeAndFlush(finalResponseMessage)
    .addListener(ChannelFutureListener.CLOSE);

ផ្នែកនេះសន្មតថាចម្លើយត្រូវបានសាងសង់ និងដាក់ស៊ុមយ៉ាងត្រឹមត្រូវរួចហើយ។ សម្រាប់តួដែលបញ្ជូនជាស្ទ្រីម សូមប្រើការបញ្ចប់នៃសារចុងក្រោយរបស់វា មិនមែនការសរសេរក្បាលទេ។ សម្រាប់ការតភ្ជាប់ HTTP បន្ត កុំបន្ថែមការបិទដោយសារតែចម្លើយបានបញ្ចប់។

ពិនិត្យការបរាជ័យរបស់ future ជាផ្នែកនៃការគ្រប់គ្រងកំហុសធម្មតារបស់កម្មវិធី។ ការបញ្ចប់រួមបញ្ចូលទាំងការបរាជ័យ និងការលុបចោល ដូច្នេះការបញ្ចប់តែម្នាក់ឯងមិនមែនជាបង្កាន់ដៃនៃការដឹកជញ្ជូនពីកម្មវិធីរុករកទេ។

ការប្រៀបធៀបដែលមានប្រយោជន៍គឺប្រវែងចម្លើយពេញលេញ និងលទ្ធផលនៃការសរសេរនៅលើផ្លូវនីមួយៗ។ ប្រូកស៊ីអាចផ្លាស់ប្តូរពេលវេលាបានគ្រប់គ្រាន់ដើម្បីបង្ហាញកំហុសវដ្តជីវិតដែលមានស្រាប់។ វត្តមានរបស់វាមិនបញ្ជាក់ថាកុំព្យូទ័របង្ហាប់ ឬឃ្លាំងសម្ងាត់របស់វាបានបោះបៃចោលទេ។

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