HTML SSE API
Server-Sent Events (SSE) သည် ဝဘ်စာမျက်နှာကို ဆာဗာတစ်ခုမှ အပ်ဒိတ်များရယူရန် ခွင့်ပြုသည်။
ဆာဗာမှ ပေးပို့သည့် အစီအစဉ်များ - One Way Messaging
ဆာဗာမှ ပေးပို့သည့်ဖြစ်ရပ်သည် ဝဘ်စာမျက်နှာတစ်ခုမှ ဆာဗာတစ်ခုမှ အပ်ဒိတ်များကို အလိုအလျောက်ရရှိသောအခါဖြစ်သည်။
ယခင်ကလည်း ဖြစ်နိုင်သော်လည်း ဝဘ်စာမျက်နှာတွင် အပ်ဒိတ်များ ရနိုင်သလားဟု မေးမြန်းရမည်ဖြစ်ပါသည်။ ဆာဗာမှ ပေးပို့သော အစီအစဉ်များဖြင့် အပ်ဒိတ်များသည် အလိုအလျောက် ရောက်ရှိလာပါသည်။
ဥပမာများ- Facebook/Twitter အပ်ဒိတ်များ၊ စတော့စျေးနှုန်းအပ်ဒိတ်များ၊ သတင်းဖိဒ်များ၊ အားကစားရလဒ်များ စသည်တို့။
Browser ပံ့ပိုးမှု
ဇယားရှိ နံပါတ်များသည် ဆာဗာပေးပို့သည့် ဖြစ်ရပ်များကို အပြည့်အဝထောက်ခံသည့် ပထမဆုံးဘရောက်ဆာဗားရှင်းကို သတ်မှတ်ပေးပါသည်။
API | |||||
---|---|---|---|---|---|
SSE | 6.0 | 79.0 | 6.0 | 5.0 | 11.5 |
ဆာဗာမှ ပေးပို့ထားသော အဖြစ်အပျက် အသိပေးချက်များကို လက်ခံရယူပါ။
EventSource အရာဝတ္တုအား ဆာဗာမှ ပေးပို့သော အဖြစ်အပျက် အသိပေးချက်များကို လက်ခံရရှိရန် အသုံးပြုသည်-
ဥပမာ
var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
document.getElementById("result").innerHTML += event.data + "<br>";
};
ဥပမာ ရှင်းပြထားသည်-
- EventSource object အသစ်တစ်ခုဖန်တီးပြီး အပ်ဒိတ်များ ပေးပို့သည့် စာမျက်နှာ၏ URL ကို သတ်မှတ်ပါ (ဤဥပမာ "demo_sse.php")
- အပ်ဒိတ်တစ်ခု လက်ခံရရှိတိုင်း၊ onmessage ဖြစ်ရပ် ဖြစ်ပေါ်သည်။
- onmessage ဖြစ်ရပ်တစ်ခုဖြစ်ပေါ်လာသောအခါ၊ လက်ခံရရှိသောဒေတာကို id="result" ဖြင့် ဒြပ်စင်ထဲသို့ထည့်ပါ။
Server-Sent Events Support ကို စစ်ဆေးပါ။
အထက်ဖော်ပြပါ tryit ဥပမာတွင် ဆာဗာပေးပို့သည့်ဖြစ်ရပ်များအတွက် ဘရောက်ဆာပံ့ပိုးမှုကို စစ်ဆေးရန် ကုဒ်အပိုလိုင်းအချို့ရှိပါသည်-
if(typeof(EventSource) !== "undefined") {
// Yes! Server-sent events support!
// Some code.....
}
else {
// Sorry! No server-sent events support..
}
Server-Side Code ဥပမာ
အထက်ဖော်ပြပါနမူနာအတွက်၊ သင်သည် ဒေတာမွမ်းမံမှုများကို ပေးပို့နိုင်သော ဆာဗာတစ်ခု ( PHP သို့မဟုတ် ASP ကဲ့သို့) လိုအပ်ပါသည်။
server-side event stream syntax သည် ရိုးရှင်းပါသည်။ "အကြောင်းအရာ-အမျိုးအစား" ခေါင်းစီးအား "စာသား/ဖြစ်ရပ်-စီးကြောင်း" သို့ သတ်မှတ်ပါ။ ယခု သင်သည် အစီအစဉ်စီးကြောင်းများကို စတင်ပေးပို့နိုင်ပါပြီ။
PHP တွင် ကုဒ် (demo_sse.php):
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
?>
ASP (VB) ရှိ ကုဒ် (demo_sse.asp):
<%
Response.ContentType = "text/event-stream"
Response.Expires = -1
Response.Write("data: The server time is: " & now())
Response.Flush()
%>
ကုဒ်ကို ရှင်းပြထားသည်-
- "အကြောင်းအရာ-အမျိုးအစား" ခေါင်းစီးအား "စာသား/ဖြစ်ရပ်-စီးကြောင်း" သို့ သတ်မှတ်ပါ
- စာမျက်နှာသည် ကက်ရှ်မဖြစ်သင့်ကြောင်း သတ်မှတ်ပါ။
- ပေးပို့ရန် ဒေတာကို ထုတ်ပေးပါ ( အမြဲတမ်း "ဒေတာ:" ဖြင့် အစပြုပါ)
- အထွက်ဒေတာကို ဝဘ်စာမျက်နှာသို့ ပြန်သွားပါ။
EventSource Object
အထက်ဖော်ပြပါ ဥပမာများတွင် ကျွန်ုပ်တို့သည် မက်ဆေ့ချ်များရယူရန် onmessage အစီအစဉ်ကို အသုံးပြုခဲ့သည်။ သို့သော် အခြားသော ပွဲများလည်း ရနိုင်သည်-
Events | Description |
---|---|
onopen | When a connection to the server is opened |
onmessage | When a message is received |
onerror | When an error occurs |