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() %>
کد توضیح:
- قومی سر میگس کو "text/event-stream" رکھیں
- صفحے کو کچن نہ کریں
- جاری دینا کو یقینی بنائیں (سب سے پہلے "data: " سے شروع ہونا چاہئے)
- وائب کی برسٹ آؤٹ میں اشارتی اشارتی دینا
EventSource آئیسی
درج بالا مثال میں، ہم نے onmessage ایونٹ کا استعمال کیا ہے تاکہ پیغام حاصل کیا جائے، لیکن دیگر ایونٹ بھی استعمال کئے جا سکتے ہیں:
ایونٹ | وصف |
---|---|
onopen | وقتی سروسر کے ساتھ کنکشن کھول دیا جاتا ہے |
onmessage | وقتی پیغام مل جاتا ہے |
onerror | وقتی خاطی کاری آتی ہے |
- پچھلے پیج ایچ تی ایم ایل5 ویب ورکرس
- پچھلے پیج ایچ تی ایم ایل مثال