ရှည်လျားသော HTTP အလုပ်များအတွင်း proxy ၏ မလှုပ်ရှားခြင်း အချိန်ကုန်ဆုံးမှုများ
ရှည်လျားသော ဆာဗာအလုပ်သည် proxy ၏ မလှုပ်ရှားမှုကန့်သတ်ချက်နှင့် ကြုံတွေ့သောအခါ နောက်ဆုံးတုံ့ပြန်မှုထဲသို့ မတရားသော byte များ ထည့်မည့်အစား polling သို့မဟုတ် သတ်မှတ်ထားသော streaming ပုံစံကို ရွေးပါ။
ဝန်ဆောင်မှုတစ်ခုသည် မိနစ်ပိုင်းကြာ နှုတ်ဆိတ်နေပြီး proxy အချိန်ကုန်သွားပါက heartbeat byte များ မထည့်မီ client ဘာလက်ခံရမည်ကို ရွေးပါ။ timer ကို ရှည်စေခြင်းက စောင့်ဆိုင်းမှုတစ်ခုကို ကူညီနိုင်သည်; တုံ့ပြန်မှု စာချုပ်က မည်သည့်တိုးတက်မှု တရားဝင်သည်ကို ဆုံးဖြတ်သည်။
| အပလီကေးရှင်း ဒီဇိုင်း | တိုးတက်မှု စာချုပ် |
|---|---|
| အဆင့်မြှင့် မဟုတ်သော အလုပ် | စောင့်ကြည့်မှုကို ဖော်ပြသော ကိုယ်စားပြုမှုနှင့်အတူ 202 Accepted၊ ထို့နောက် အကန့်အသတ်ရှိသော အခြေအနေ တောင်းဆိုမှုများနှင့် ပြီးစီးမှု/မအောင်မြင်မှု အခြေအနေများ |
| Server-Sent Events စီးကြောင်း | Content-Type: text/event-stream နှင့် SSE client နားလည်သော မှတ်တမ်းများ |
202 သည် အလုပ် အောင်မြင်မည်ဟု ကတိမပေးပါ။ SSE အတွက် မှတ်ချက် မှတ်တမ်းသည် ဤသို့ ဖြစ်နိုင်သည်:
: heartbeat
ကော်လံက ၎င်းကို အပလီကေးရှင်း ဖြစ်ရပ်မဟုတ်ဘဲ မှတ်ချက် ဖြစ်စေသည်။ HTML ၏ ရေးသားမှု မှတ်စုများက အချို့သော ရှေးဟောင်း proxy မလှုပ်ရှားမှု အမူအကျင့်များကို ဆန့်ကျင်ရန် ခန့်မှန်းခြေ 15 စက္ကန့်တစ်ကြိမ် အခါကာလ မှတ်ချက်များ ပေးရန် အကြံပြုသည်; ၎င်းသည် လမ်းညွှန်ချက်ဖြစ်ပြီး ကမ္ဘာလုံးဆိုင်ရာ အချိန်ကုန်ဆုံးမှု အာမခံချက် မဟုတ်ပါ။
ခေါင်းစီးများ ပြီးစီးပြီး အပလီကေးရှင်း/ဝန်ဆောင်မှု stack သည် မှတ်တမ်းများကို ဒေသတွင်း buffer မလုပ်ဘဲ လွှတ်ပေးကြောင်း သေချာပါစေ။ မပို့ရသေးသော byte များသည် အောက်ပိုင်း ကြားခံအဖွဲ့ကို တက်ကြွ မထားနိုင်ပါ။
သာမန် JSON သို့မဟုတ် binary အကြောင်းအရာထဲသို့ SSE မှတ်ချက်များ မထည့်ပါနှင့်။ HTTP/1.1 ၏ သုည အရှည် chunk သည် chunked ကိုယ်ထည်ကို အဆုံးသတ်စေသည်၊ ထို့ကြောင့် ၎င်းသည် ထပ်ခါတလဲလဲ ပြုလုပ်နိုင်သော အလွတ် heartbeat မဟုတ်ပါ။
လုပ်ငန်းဆောင်ရွက်မှု နောက်ဆုံးရက်နှင့် ပယ်ဖျက်ရေး မူဝါဒကို ထိန်းသိမ်းပါ။ ယာဉ်ကြော လှုပ်ရှားမှုတစ်ခုတည်းက အသုံးဝင်သော အလုပ်တိုးတက်မှု သို့မဟုတ် တရားဝင် နောက်ဆုံးရလဒ်ကို မပြပါ။