مدونة عمار الخوالده

Server Sent Events (SSE)

قُصاصة

بروتوكول HTTP يستخدم Request-Response model، مما يعني أن السيرفر لا يستطيع إرسال بيانات إلى الـ Client ما لم يقم الـ Client أولا بإرسال Request.

لكن يمكن استخدام SSE (Server Sent Events) لإرسال البيانات من السيرفر للـ Client، لا يزال الـ Client بحاجة إلى إرسال Request أولا، لكن يتم استخدام Keep-Alive لإبقاء الاتصال مفتوحا، والسيرفر سيرسل البيانات دون انهاء الـ Response، في الصورة السابقة تجد أنه قد تم إرسال أكثر من رسالة من السيرفر إلى الـ Client في أوقات مختلفة، كلها تعتبر Response واحدة لكن تم تقسيما وإرسالها بالتدريج،

استخدام SSE قد يكون مناسبا في حال وجود بيانات تحتاج إلى تحديثها باستمرار، يفضل استخدامها مع HTTP/2، المتصفحات تفتح 6 اتصالات فقط، وSSE سيحجز أحدى هذه الاتصالات، لذلك لا يفضل استخدامها مع HTTP/1.1

هذا مقال يوضح كيف استفادت Shopify من SSE بشكل عملي

Using Server Sent Events to Simplify Real-time Streaming at Scale | Shopify