SSE ย่อมาจาก Server-Sent Events คือการส่งผ่านข้อมูลจาก sever ไปที่ client ต่างกันกับ WebSockets เป็นการส่งข้อมูลแบบสองทาง แต่ถ้าเราต้องการส่งข้อมูลทางเดียวจาก sever ไปที่ client (เช่น การแจ้งเตือนต่างๆ ของ Facebook/Twitter) เราสามารถใช้เทคโนโลยีอีกตัวชื่อ Server-sent Events (SSE) แทนได้
ตัวอย่าง
<html>
<body>
<h1>Getting server updates</h1>
<div id="result"></div>
<script>
if(typeof(EventSource)!=="undefined")
{
var source=new EventSource("demo_sse.php");
source.onmessage=function(event)
{document.getElementById("result").innerHTML+=event.data + "<br>"; }; }else {document.getElementById("result").innerHTML="Sorry, your browser does not support server-sent events..."; }
</script>
</body>
</html>
ตรวจสอบว่า browser รองรับ SSE หรือไม่
if(typeof(EventSource) !== "undefined") {
// Yes! Server-sent events support!
// Some code.....
} else {
// Sorry! No server-sent events support..
}
คำสั่ง Event สำคัญของ EventSource
onopen : เหตุการณ์ที่ใช้ตรวจสอบว่าติดต่อ server สำเร็จ
onmessage : เหตุการณ์ที่ใช้ตรวจสอบว่า server ได้รับ message แล้วหรือยัง
onerror : เหตุการณ์ที่ใช้ตรวจสอบความผิดพลาด