الاستطلاع القصير (Short Polling)، الاستطلاع الطويل (Long Polling)، وSSE

تحتاج إلى إرسال بيانات من خادم (server) إلى عميل (client). إليك ثلاث طرق للقيام بذلك.

الاستطلاع القصير (Short Polling)

تخيل زبوناً في مطعم. يسأل الزبون النادل كل 5 ثوانٍ عما إذا كان الطعام جاهزاً.

يكرر الزبون هذا السؤال على فترات منتظمة.

المشكلات:

  • عدد كبير جداً من الطلبات يصل إلى خادمك.
  • تتأخر التحديثات. إذا كان الطعام جاهزاً بعد ثانية واحدة من السؤال، سينتظر الزبون 4 ثوانٍ أخرى ليسأل مرة أخرى.
  • يؤدي ذلك إلى هدر موارد الشبكة.

الاستطلاع الطويل (Long Polling)

يسأل الزبون النادل: أخبرني عندما يصبح طعامي جاهزاً.

يبقى النادل عند الطاولة وينتظر. إذا انتهى الطاهي من إعداد الطعام، يخبر النادل الزبون فوراً. وإذا استغرق الطعام وقتاً طويلاً، يخبر النادل الزبون بأنه لم يجهز بعد.

المشكلات:

  • تظل الاتصالات مفتوحة لفترة طويلة.
  • قد تواجه مشكلة انتهاء مهلة الاتصال (connection timeouts).
  • من الصعب إدارة العديد من الزبائن في وقت واحد.

أحداث الخادم المرسلة (Server Sent Events - SSE)

تخيل أسعار الأسهم المباشرة. يفتح العميل اتصالاً لمرة واحدة، ويحافظ الخادم على هذا الاتصال مفتوحاً. وكلما تغير السعر، يرسل الخادم التحديث إلى العميل.

حقائق رئيسية:

  • هذا اتصال في اتجاه واحد (one-way communication).
  • تتدفق البيانات من الخادم إلى العميل فقط.
  • لا يرسل العميل رسائل عبر هذا الاتصال.

المصدر: https://dev.to/guruharish_b/short-polling-long-polling-and-sse-20o5