HTML Server-Sent ਈਵੈਂਟ
- پچھلے پیج ایچ تی ایمل5 ویب ورکرس
- پچھلے پیج ایچ تی ایمل مثال
Server-Sent ਈਵੈਂਟ ਵੈੱਬਸਾਈਟ ਨੂੰ ਸਰਵਰ ਤੋਂ ਅੱਪਡੇਟ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ。
Server-Sent ਈਵੈਂਟ - ਇੱਕ ਤਰਫ਼ ਦਾ ਸੰਦੇਸ਼ ਭੇਜਣ
Server-Sent ਈਵੈਂਟ ਇਹ ਹੈ ਕਿ ਵੈੱਬਸਾਈਟ ਆਪਣੇ ਆਪ ਸਰਵਰ ਤੋਂ ਅੱਪਡੇਟ ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ。
ਇਸ ਨੂੰ ਪਹਿਲਾਂ ਵੀ ਕੀਤਾ ਜਾ ਸਕਦਾ ਸੀ, ਪਰ ਇਸ ਤਰ੍ਹਾਂ ਵੈੱਬਸਾਈਟ ਨੂੰ ਅੱਪਡੇਟ ਲਈ ਜਾਣੂ ਕਰਵਾਉਣਾ ਪਵੇਗਾ। Server-Sent ਈਵੈਂਟ ਰਾਹੀਂ, ਅੱਪਡੇਟ ਆਪਣੇ ਆਪ ਆਉਂਦੇ ਹਨ。
ਉਦਾਹਰਣ ਵਜੋਂ: Facebook/Twitter ਅੱਪਡੇਟ, ਸ਼ੇਅਰ ਕੀਮਤਾਂ ਦੇ ਅੱਪਡੇਟ, ਨਵੇਂ ਪੋਸਟ, ਪ੍ਰੋਗਰਾਮ ਨਤੀਜੇ, ਆਦਿ
ਬਰਾਉਜ਼ਰ ਸਹਾਇਤਾ
ਸਾਰੇ ਸਤਰ ਵਿੱਚ ਸੰਖਿਆਵਾਂ ਪੂਰੀ ਤਰ੍ਹਾਂ server-sent ਈਵੈਂਟ ਦਾ ਪਹਿਲਾ ਬਰਾਉਜ਼ਰ ਸਹਾਇਤਾ ਦਿਸਾਉਂਦੀਆਂ ਹਨ。
API | |||||
SSE | 6.0 | ਸਹਾਇਤਾ ਨਹੀਂ | 6.0 | 5.0 | 11.5 |
Server-Sent ਈਵੈਂਟ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ
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" ਐਲੀਮੈਂਟ ਵਿੱਚ ਭੇਜੇ
Server-Sent ਈਵੈਂਟ ਸਹਾਇਤਾ ਜਾਂਚ
TIY ਉਦਾਹਰਣ ਵਿੱਚ, ਅਸੀਂ ਇੱਕ ਵਾਧੂ ਕੋਡ ਲਿਖਿਆ ਹੈ ਕਿ ਸਰਵਰ ਦੁਆਰਾ ਈਵੈਂਟ ਭੇਜਣ ਦੀ ਬਰਾਉਜ਼ਰ ਸਹਾਇਤਾ ਨੂੰ ਜਾਂਚ ਕਰੇ:
if(typeof(EventSource) !== "undefined") { // ਹਾਂ! ਸਰਵਰ ਦੁਆਰਾ ਈਵੈਂਟ ਭੇਜਣ ਦੀ ਸਹਾਇਤਾ ਹੈ! // ਕੁਝ ਕੋਡ..... } // ਮਾਫ ਕਰੋ! ਸਰਵਰ ਦੁਆਰਾ ਈਵੈਂਟ ਭੇਜਣ ਦੀ ਸਹਾਇਤਾ ਨਹੀਂ ਹੈ! }
ਸਰਵਰ ਪੱਖ ਕੋਡ ਉਦਾਹਰਣ
ਜਦੋਂਕਿ ਉੱਪਰੋਕਤ ਉਦਾਹਰਣ ਚਲਣ ਲਈ, ਤੁਹਾਨੂੰ ਸਰਵਰ ਤੋਂ ਡਾਟਾ ਅੱਪਡੇਟ ਭੇਜਣ ਦੀ ਸਮਰੱਥਾ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ (ਉਦਾਹਰਣ ਵਜੋਂ PHP ਜਾਂ ASP)。
سرور سائیڈ ایونٹ اسٹریم کا گرامر بہت سادا ہے۔ "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 | وقتی خطا پیش آئی |
- پچھلے پیج ایچ تی ایمل5 ویب ورکرس
- پچھلے پیج ایچ تی ایمل مثال