အသက်ရှိ TCP socket၊ တုံ့ပြန်သော WebSocket ပီယာနှင့် အသုံးဝင်သော အပလီကေးရှင်း တိုးတက်မှုတို့သည် မတူညီသော လေ့လာတွေ့ရှိချက်များဖြစ်သည်:

သက်သေ၎င်းက ဘာကို အတည်ပြုသည်
TCP အဆင့် အသက်ရှင်မှုစစ်ဆေးထားသော ပို့ဆောင်ရေးလမ်းကြောင်းသည် ထိုအဆင့်တွင် တုံ့ပြန်သည်
ကိုက်ညီသော WebSocket Pongပီယာက ထို control frame ကို ဖြေကြားခဲ့သည်
အပလီကေးရှင်း အတည်ပြုချက်အပလီကေးရှင်းက ၎င်း၏ ကိုယ်ပိုင် ပရိုတိုကောအောက်တွင် လုပ်ဆောင်ချက်ကို အတည်ပြုခဲ့သည်

forward proxy သည် များသောအားဖြင့် client နှင့် destination အတွက် သီးခြား ချိတ်ဆက်မှုများကို ထိန်းသိမ်းသည်။ client ၏ TCP ပီယာသည် proxy ဖြစ်ပြီး တည်ဆောက်ပြီးသော tunnel အတွင်းရှိ Ping သည် WebSocket endpoint သို့ သွားသည်။

ကိုက်ညီသော Pong

ပရိုတိုကောက တုံ့ပြန်သော Pong တွင် Ping ၏ အပလီကေးရှင်း ဒေတာ ပါဝင်ရန် တောင်းဆိုသည်။ မပြီးဆုံးသေးသော စစ်ဆေးမှုကို ဖော်ထုတ်ရန် ထို ကိုက်ညီမှုကို အသုံးပြုပါ။ မတောင်းဆိုသော Pong ကို ခွင့်ပြုသော်လည်း အတည်ပြုချက် မတောင်းပါ။ ဒေတာ မက်ဆေ့ချ် တစ်ခုစီနောက် ပို့ခြင်းသည် မတူညီသော သက်သေကို ပေးသည်။

library က ပံ့ပိုးသော heartbeat ယန္တရားကို ဦးစားပေးပါ။ browser JavaScript သည် အစားအပလီကေးရှင်း heartbeat သဘောတူစာချုပ်လိုအပ်သည်။ အလုပ်တာဝန်နှင့် ကွန်ရက်မူဝါဒအတွက် ကြားကာလများနှင့် မအောင်မြင်မှု သတ်မှတ်ချက်များကို ရွေးပါ။ အချိန်ဇယား ရပ်နားမှုများ သို့မဟုတ် ဝန်ပိသော event loop သည် ကွန်ရက် ပျက်သွားကြောင်း မသက်သေပြဘဲ ပြင်းထန်သော သတ်မှတ်ချက်ကို လွတ်သွားနိုင်သည်။

လက်ခံသူကို ဆက်လက်လည်ပတ်ထားပါ

control frame များကို လက်ခံရန်နှင့် လုပ်ဆောင်ရန် client သည် ဆက်တိုက် I/O လိုအပ်သည်။ ထို ယန္တရားကို ပိတ်ဆို့ခြင်းက ဒေသတွင်း အရင်းအမြစ် ချို့တဲ့မှုကို ပြတ်တောက်မှုအဖြစ် ထင်ရစေနိုင်သည်။

Ping သည် tunnel လမ်းကြောင်း သွားလာမှုကို ဖန်တီးသည်၊ သို့သော် ၎င်း၏ idle မူဝါဒကို ဘာက ဖြည့်ဆည်းသည်ကို ကြားခံတစ်ခုစီက ဆုံးဖြတ်သည်။ မည်သည့် heartbeat မျှ ချိတ်ဆက်မှု၏ အကြွင်းမဲ့ သက်တမ်းကန့်သတ်ချက်မှ ကာကွယ်မှုကို အာမမခံပါ။

ပီယာ၏ အပလီကေးရှင်းက အပ်ဒိတ်များ ထုတ်လုပ်ခြင်း ရပ်သွားချိန်တွင်ပင် Ping ကို ဖြေကြားနိုင်ပြီး တိတ်ဆိတ်သော subscription သည် ကျန်းမာနိုင်သည်။ နှစ်ခုစလုံး အရေးကြီးသောအခါ နောက်ဆုံး တရားဝင် Pong နှင့် အဓိပ္ပာယ်ရှိသော အပလီကေးရှင်း ဖြစ်ရပ်ကို သီးခြား ခြေရာခံပါ။ မအောင်မြင်ပါက လမ်းကြောင်း၊ ကုန်ဆုံးချိန်များနှင့် မပြီးဆုံးသေးသော စစ်ဆေးမှုကို သိမ်းထားပြီး ပံ့ပိုးထားသော lifecycle ဖြင့် ပိတ်ပါ သို့မဟုတ် ပြန်လည်ကောင်းမွန်စေပါ။

ဆက်စပ်ဆောင်းပါးများ