Skip to content
GitHub

မိတ်ဆက် - WebSockets: Real-Time Web ဆီသို့ တံခါးဖွင့်ခြင်း

အခုခေတ် Website တွေဟာ အရင်လို ရုပ်ပြသက်သက် စာမျက်နှာတွေတင် ပြတာမျိုး မဟုတ်တော့ပါဘူး။ ပိုပြီး အသက်ဝင်လာတယ်၊ ကိုယ်လုပ်လိုက်တာကို ချက်ချင်း တုံ့ပြန်လာနိုင်ပါတယ်။ ဥပမာအနေနဲ့ ပြောရရင် Chat App တွေလိုမျိုး၊ Online ဆော့တဲ့ ဂိမ်းတွေလိုမျိုး၊ ဒါမှမဟုတ် စတော့ရှယ်ယာဈေးလိုမျိုး အချိန်နဲ့အမျှ ပြောင်းလဲနေတဲ့ သတင်းအချက်အလက် (Data) တွေကို Website ကနေ ကိုယ့်ဆီကို ချက်ချင်း (Real-time) ပို့ပေးဖို့ လိုအပ်ပါတယ်။

ဒီလိုမျိုး Website Server (သတင်းအချက်အလက် ထားရာနေရာ) ကနေ ကိုယ့် Browser ဆီကိုရော၊ ကိုယ့် Browser ကနေ Server ဆီကိုပါ အချက်အလက်တွေကို တစ်ချိန်တည်း အပြန်အလှန် ပို့နိုင်ဖို့အတွက် WebSockets ဆိုတဲ့ နည်းပညာက အရမ်း အရေးကြီးပါတယ်။

ရှင်းရှင်းပြောရရင် WebSocket ဆိုတာဟာ ကိုယ့်ရဲ့ Browser နဲ့ Website ရဲ့ Server ကြားမှာ ဖုန်းကြိုး ဖွင့်ထားသလိုမျိုး ဆက်သွယ်ရေး လမ်းကြောင်းတစ်ခုကို အမြဲတမ်း ဖွင့်ပေးထားတာပါ။ ဒါကြောင့် အချက်အလက်တွေ ပို့ချင်တဲ့အခါ အဲ့ဒီ ဖွင့်ထားတဲ့ လမ်းကြောင်းအတိုင်း ချက်ချင်း ပို့လို့ ရသွားပါတယ်။

websocket bi-directional connection

ဒီလိုမျိုး အမြဲတမ်း ဖွင့်ထားပြီး အပြန်အလှန် ပြောဆိုလို့ရတဲ့ (Bi-directional) လမ်းကြောင်းမျိုးကို ဘာကြောင့် လိုအပ်လာတာလဲ? ဒါကို ပိုမို နားလည်ဖို့အတွက် HTTP နဲ့ TCP အကြောင်းကို ပြန်လည် လေ့လာကြည့်ဖို့ လိုပါတယ်။

ဘာလို့လဲဆိုတော့ အင်တာနက် ချိတ်ဆက်မှုတွေရဲ့ အခြေခံအစက TCP Protocol ဖြစ်ပြီး၊ အဲ့ဒီအပေါ်မှာ အခြေခံတဲ့ HTTP ရဲ့ လက်ဆွဲနှုတ်ဆက်ပုံ (Handshake) ကို အသုံးပြုပြီးမှသာ WebSocket ချိတ်ဆက်မှုကို အောင်မြင်စွာ ထူထောင်ကြတာ ဖြစ်လို့ပါ။ ဒါကြောင့် အရင်ဆုံး TCP နဲ့ HTTP အကြောင်းကို ဆက်လက် လေ့လာကြည့်ရအောင် ခင်ဗျာ။

browser and server ws connection