HTML سرور سمت واقعیتیں

سرور سمت واقعیتیں، ویب پیج کو سرور سے اپدیت حاصل کرنے کی اجازت دیتا ہے.

سرور سمت واقعیتیں - ایک طرف کا پیغام بھیجنا

سرور سمت واقعیتیں، ویب پیج خودکار طور پر سرور سے اپدیت حاصل کرنے کا ذریعہ ہیں.

پہلے بھی اس کو کرسکتے تھے، شرط یہ تھی کہ ویب پیج کو اپدیت کی جائزگی سوال کی جانی تھی۔ سرور سمت واقعیتیں کی مدد سے، اپدیت خودکار طور پر پہنچ جاتی ہیں.

مثلاً فیسبوک / ٹوئیٹر اپدیت، اسٹاک قیمت کی اپدیت، نئی بلاگ پیپر، مسابقتی نتائج، وغیرہ

براوزر کی پشتیبندگی

جداول میں دیکھی جانے والی اعداد، پورا طور پر سرور سمت واقعیتیں کی پشتیبندگی کا پہلا براوزر کو دکھاتا ہے.

API
SSE 6.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 جگہ بنائی جاتی ہے، بعد میں اس کا URL ارسال کردار کا تعین کیا جاتا ہے (مثال میں "demo_sse.php")
  • جب کبھی کبھی اپدیت کا حصول ہوتا ہے تو، onmessage واقعیتیں ہوتی ہیں
  • جب onmessage واقعیتیں ہوتی ہیں تو، وہ دریافت کردہ دیتا کو id کا "result" کا عنصر میں بھیج دیا جاتا ہے

سرور سمت واقعیتیں کی پشتیبندگی کا معائنہ کرنا

در مثال TIY میں، ہم نے سرور سمت واقعیتیں کی کچھ کچھ براہ راست کا تحقیق کرنے والا کد لکھا ہے:

if(typeof(EventSource) !== "undefined") {
    // نک، سرور سمت واقعیتیں پشتیبند!
    // کچھ کد.....
}
    // معذرت، سرور سمت واقعیتیں پشتیبند نہیں!
}

سرور سمت کد مثال

کے لئے اس مثال کو چلنے کی خاطر آپ کو سرور کو دیتا اپدیت فراہم کرنے والا سرور (مثلاً پی ایچ پی یا اے ایس پی) پائیدار رکھنا چاہیے。

ساختار زبان رویدادهای سرور بسیار ساده است. عنوان سربرگ "Content-Type" را به "text/event-stream" تنظیم کنید. حالا می‌توانید شروع به ارسال جریان رویداد کنید.

کد در 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()
%>

توضیح کد:

  • عنوان سربرگ "Content-Type" را به "text/event-stream" تنظیم کنید
  • صفحه را به‌روزرسانی نکنید
  • تاریخ ارسال شده را مشخص کنید (همیشه با "data: " آغاز می‌شود)
  • داده‌های به‌روزرسانی شده به صفحه وب ارسال کنید

شیء EventSource

در مثال بالا، ما از رویداد onmessage برای دریافت پیام استفاده کردیم. اما می‌توان از رویدادهای دیگر نیز استفاده کرد:

رویداد توضیحات
onopen در صورت باز شدن اتصال به سرور
onmessage در صورت دریافت پیام
onerror در صورت بروز خطا