SSE در Html چیست و چه کاربردی دارند ؟
HTML 5 یک سری API داره که خیلی کاربردی هستند بویژه در سامانه های تحت وب (Web Applications) که ssl یکی از این API ها هستش
Server Side Events : SSE مخفف رویداد های طرف سرویس دهنده هست یعنی اون توابعی که در قسمت سرویس دهنده اجرا میشه و نتایج اون به صورت Real time یعنی بدون وقفه به کاربر یا سرویس گیرنده (Client) ارسال میشه . یعنی بدون نیاز به ارسال درخواست HTTP چه به صورت Ajax و یا معمولی ، اطلاعات رو از سرویس دهنده (Server) دریافت میکنه نمونه کامل تر این فرآیند وب سوکت هست ولی در وب سوکت ایجاد سرور و ارتباط دو طرفه بودن کمی زمان بر هست و گاهی ما فقط نیاز این رو داریم که اطلاعات فقط از طرف سرویس دهنده به کاربر به صورت Real Time باشه در این مواقع بهترین گزینه استفاده از SSE هست. یعنی میشه گفت SSE همون وب سوکت هست ولی با این تفاوت که در SSE مسیر یک طرفه از سرویس دهنده به کاربر هست و نیازی به ایجاد سرور نیست ! با این مقدمه ای که گفته شد میریم سراغ متد هایی که در SSE موجود هست
سه متد در SSE داریم :
- onopen : زمانی که SSE باز میشه یا بهتر بگیم ، زمانی که کاربر ارتباطش با سرور برقرار میشه
- onmessage : زمانی که پیغامی از طرف سرور به کاربر ارسال میشه
- onerror : زمانی که خطایی رخ میده
اعلان های sse
به مثال زیر دقت کنید :
var source = new EventSource(“demo_sse.php”);
source.onmessage = function(event) {
document.getElementById(“result”).innerHTML += event.data + “<br>”;
};
پشتیبانی sse
if(typeof(EventSource) !== “undefined”) {
// پشتیبانی از رویدادهای ارسال شده توسط سرور
// code…..
} else {
// از sse پشتیبانی نمی کند
}
<?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
<%
Response.ContentType = “text/event-stream”
Response.Expires = -1
Response.Write(“data: The server time is: ” & now())
Response.Flush()
%>
نسخه ی مرور گر ها که از SSE پشتیبانی میکنند :
- کروم : نسخه ۶٫۰ به بعد
- اینترنت اکسپلورر : نسخه ۷۹ به بعد
- موزیلا فایرفاکس : نسخه ۶٫۰ به بعد
- سافاری : نسخه ۵٫۰ به بعد
- اپرا : نسخه ۱۱٫۵ به بعد
امیدواریم این بخش از آموزش در مورد SSE در Html نیز برای شما مفید واقع شده باشد و ما را در تلگرام و اینستاگرام دنبال کنید .
نظراتتون رو زیر همین پست با ما به اشتراک بگذارید