လွယ်လွယ်ပြောရရင် WebSocket ဆိုတာ Browser နဲ့ Server ကြား ဖုန်းလိုင်းဖွင့်ထားသလိုပါ။ သာမန် Website တွေက စာပို့ချင်တိုင်း စာတိုက်သွားပို့ရသလို Request တစ်ခု ပို့လိုက်၊ Response တစ်ခု စောင့်လိုက်နဲ့ အလုပ်လုပ်တယ်။ WebSocket ကတော့ တစ်ခါ ချိတ်ဆက်ပြီးရင် နှစ်ဖက်လုံး အချိန်မရွေး စကားပြောလို့ရတယ်။
ဥပမာ Chat App ကို စဉ်းစားကြည့်ပါ။ သာမန်နည်းနဲ့ဆိုရင် “စာအသစ်ရောက်လား” လို့ ၃ စက္ကန့်တစ်ခါ Server ကို မေးနေရမယ်။ ဒါကို Polling လို့ ခေါ်တယ် — အလုပ်မရှိလည်း မေးနေရတာ၊ Battery လည်း ကုန်၊ Server လည်း ပင်ပန်းတယ်။ WebSocket သုံးရင် စာရောက်လာတာနဲ့ Server က ချက်ချင်း တွန်းပို့ပေးတယ်။ မေးစရာ မလိုဘူး။
WebSocket သုံးတဲ့ နေရာတွေက —
– Chat App တွေ (Messenger, Telegram Web လို)
– Live Score / Stock Price တိုက်ရိုက်ပြတဲ့ Dashboard တွေ
– Online Game တွေ (ကစားသမားတွေရဲ့ လှုပ်ရှားမှု ချက်ချင်းသိရတာ)
– Google Docs လို အတူတူ စာရိုက်လို့ရတဲ့ Tool တွေ
နည်းပညာအရ ပြောရရင် WebSocket Connection ကို HTTP Request တစ်ခုနဲ့ စတယ်။ ပြီးရင် “Upgrade” လုပ်ပြီး ဆက်သွယ်ရေးလိုင်းကို ဖွင့်ထားလိုက်တယ်။ အဲဒီနောက်ပိုင်း Data ကို Frame လေးတွေနဲ့ နှစ်ဖက်စလုံး အချိန်မရွေး ပို့နိုင်တယ်။
ဒါပေမယ့် WebSocket က နေရာတိုင်းမှာ အကောင်းဆုံး မဟုတ်ဘူး။ သာမန် Blog ဖတ်တာ၊ ပုံတင်တာ လို တစ်ကြိမ်တစ်ခါ Request-Response ဆိုရင် HTTP က လုံလောက်တယ်။ Connection ဖွင့်ထားရတာ Server Resource ကုန်လို့ တကယ်လိုမှပဲ သုံးသင့်တယ်။
Developer တွေ မှတ်ထားရမှာက “Real-time လိုလား?” ဆိုတဲ့ မေးခွန်းပါ။ User က စောင့်စရာမလိုဘဲ ချက်ချင်းသိရမယ့် Feature ဆိုရင် WebSocket က အဖြေပဲ။ မဟုတ်ရင် ရိုးရိုး HTTP က ပိုရိုးရှင်းပြီး ပိုချွေတာတယ်။ 🙂
– Min SiThu (www.minsithu.org)