Server Sent Events کو سمجھنا

تصور کریں کہ آپ ChatGPT استعمال کر رہے ہیں۔ آپ ایک سوال پوچھتے ہیں۔ الفاظ کو ایک ایک کر کے ظاہر ہوتے دیکھنے کے بجائے، آپ پورے جواب کے ایک ساتھ آنے کے لیے 5 سیکنڈ انتظار کرتے ہیں۔

یہ تاخیر سست محسوس ہوتی ہے۔ یہ مایوس کن محسوس ہوتی ہے۔

اس مسئلے کو حل کرنے کے لیے، ڈویلپرز streaming responses کا استعمال کرتے ہیں۔ اس سے تجربہ تیز محسوس ہوتا ہے۔

Server Sent Events (SSE) اسے ممکن بناتے ہیں۔

SSE کیا ہے؟ SSE، HTTP کے ذریعے سرور سے کلائنٹ تک ڈیٹا اسٹریم کرنے کا ایک معیار (standard) ہے۔ یہ سرور کو آپ تک ریئل ٹائم (real time) میں اپ ڈیٹس بھیجنے کی اجازت دیتا ہے۔

یہ کیسے کام کرتا ہے: سرور چھوٹے ٹیکسٹ بلاکس بھیجتا ہے۔ یہ بلاکس data، event، id اور retry جیسے فیلڈز کا استعمال کرتے ہیں۔ ہر بلاک ایک خالی لائن سے الگ ہوتا ہے۔

مثال: data: {"name": "Portal Gun", "price": 999.99}

SSE کے عام استعمالات:

  • AI چیٹ اسٹریمینگ
  • لائیو نوٹیفیکیشنز
  • ریئل ٹائم لاگز
  • سسٹم آبزرویبلٹی (System observability)

SSE سے پہلے، ڈویلپرز اپ ڈیٹس حاصل کرنے کے لیے دو اہم طریقے استعمال کرتے تھے:

  1. Short polling کلائنٹ سرور سے ڈیٹا مانگتا ہے۔ اگر ڈیٹا تیار نہ ہو، تو سرور انتظار کا پیغام بھیجتا ہے۔ کلائنٹ انتظار کرتا ہے اور دوبارہ پوچھتا ہے۔ یہ عمل کام مکمل ہونے تک دہرایا جاتا ہے۔

  2. Long polling کلائنٹ سرور سے ڈیٹا مانگتا ہے۔ سرور درخواست کو اس وقت تک کھلا رکھتا ہے جب تک ڈیٹا تیار نہ ہو جائے یا ٹائم آؤٹ (timeout) نہ ہو جائے۔ کلائنٹ کو جواب موصول ہونے کے فوراً بعد درخواست دوبارہ شروع کرنی پڑتی ہے۔

ایونٹ اسٹریمز مسلسل چلنے والے عمل (continuous processes) کو سنبھالتے ہیں۔ یہ عمل ایک مخصوص ترتیب پر عمل کرتے ہیں۔ اس میں PDF بنانے جیسے سادہ کام یا بینک ٹرانزیکشنز جیسے پیچیدہ کام شامل ہیں۔

سرور کلائنٹ کے ساتھ ایک مواصلاتی چینل (communication channel) کھولتا ہے۔ یہ اس چینل کو عمل مکمل ہونے تک کھلا رکھتا ہے۔

Source: https://dev.to/rishini_dharan_t/understanding-server-sent-events-3mkd