Websocket ဆိုတာဘာလည်း?
ဘယ်လိုအလုပ်လုပ်တာလည်း?
ဘယ်နေရာတွေမှာသုံးနိုင်ရမှာလည်း?
websocket libiary တချို့
Websocket အကြောင်းမပြောခင်
http အကြောင်းလေးနည်းနည်းဆွေးနွေးကြပါမယ်။
http or https (communication protocol) က unidirectional ဖြစ်ပါတယ်။
အသုံးပြုသူ user တွေက browser တစ်ခုခုသုံးပီး website တစ်ခုကိုခေါ်လိုက်တဲ့အခါမှာ
http protocol ကိုအသုံးပြုပီး client ကနေ serve ကို request လုပ်ပါတယ်
server ကနေ ကျွန်တော်တို့မြင်ရမဲ့ ui နဲ့ အချက်အလက်တွေကို response လုပ်ပါတယ်။
http မှာက unidirectional ဖြစ်တဲ့အတွက် server ကနေ client ကိုဆက်သွယ်လို့မရပါဘူး
ဒီနေရာမှာ http နဲ့ဆိုင်တဲ့ method(get, post etc) status (400, 200 etc) cookie session
conent type(application/json, text, multipart form data) စသဖြင့်များစွာပြောဖို့လိုနေသေးပေမဲ့ websocket ကိုဆက်သွားကြပါမယ်။
Websocket ကို လူပိန်းနာလည်အောင်အလွယ်ပြောရရင်
webpage တစ်ခုက refresh လုပ်စရာမလိုပဲ data တွေ ဘွားကနည်း (:P)
ပေါ်လာတဲ့ နည်းပညာတစ်ခုပါ။
ဥပမာ
facebookမှာ ကိုယ့်ပိုစ်ကို သူငယ်ချင်းတစ်ယောက်ယောက်က comment လာပေးတဲ့အခါမှာ
comment ကတန်းပေါ်လာတာမျိုးပေါ့
ဒါက websocket connectionကိုအသုံးပြုထားခြင်းဖြစ်ပါတယ်။
websocket က http လိုပဲ client server ဆက်သွယ်ချက်တစ်ခုပါ
http နဲ့မတူတာကတော့ bidirectional ပါ
client to server
server to client
နှစ်မျိုးလုံးဆက်သွယ်လို့ရပါတယ်။
site တစ်ခုက 5 ခေါက် ခေါ်ခံလိုက်ရတဲ့အခါမှာ
http connection ၅ခုကိုဖွင့်ပီး server ကနေ response လုပ်ပီးတဲ့အချိန်မှာတော့
connection အားလုံးကိုချက်ချင်းပြန်ပိတ်လိုက်ပါတယ်။
websocket ကတော့ client and server တစ်ခုခုလုံး၀ပိတ်သွားမှ
ဥပမာ browswer ကိုပိတ်လိုက်တာမျိုး
websocket အသုံးပြုနေတဲ့website တစ်ခုကိုပိတ်လိုက်တာမျိုး
ဒီအခြေအနေရောက်မှ socket connection ပိတ်သွားမှာဖြစ်ပါတယ်။
ဘယ်နေရာမှာအသုံးပြုနေလည်းဆိုရင်
အပေါ်က facebook comment , like , notification တွေမှာအသုံးချနေပါတယ်
နောက်တစ်မျိုးက online game တွေပါ
pubg , mobile legends စသဖြင့် game တွေမှာ တစ်ဖက်နဲ့တစ်ဖက် realtime မြင်ရဖို့အတွက်
socket connection ကိုအသုံးပြုနေပါတယ်။
PHP Websocket Libiary => http://socketo.me/
Nodejs Websocket Libiary => https://socket.io/
realtime database လို technology မျိုးတွေလည်းရှိနေပြန်ပါသေးတယ်။
rethinkdb => https://rethinkdb.com/
firebase realtime database => https://firebase.google.com/docs/database
ref : https://en.wikipedia.org/wiki/WebSocket
ref : https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API#guides