הבנת Server Sent Events

דמיינו שאתם משתמשים ב-ChatGPT. אתם שואלים שאלה. במקום לראות מילים מופיעות אחת אחת, אתם מחכים 5 שניות עד שהתשובה כולה מופיעה בבת אחת.

העיכוב הזה מרגיש איטי. הוא מרגיש מתסכל.

כדי לפתור זאת, מפתחים משתמשים ב-streaming responses. זה גורם לחוויה להרגיש מהירה.

Server Sent Events (SSE) הופכים זאת לאפשרי.

מה זה SSE? SSE הוא תקן להזרמת נתונים (streaming) משרת ללקוח באמצעות HTTP. הוא מאפשר לשרת לדחוף (push) עדכונים אליכם בזמן אמת.

איך זה עובד: השרת שולח בלוקים קטנים של טקסט. בלוקים אלו משתמשים בשדות כמו data, event, id, ו-retry. כל בלוק מופרד בשורה ריקה.

דוגמה: data: {"name": "Portal Gun", "price": 999.99}

שימושים נפוצים ב-SSE:

  • הזרמת צ'אט של AI
  • התראות בזמן אמת
  • לוגים (logs) בזמן אמת
  • System observability

לפני SSE, מפתחים השתמשו בשתי שיטות עיקריות לקבלת עדכונים:

  1. Short polling הלקוח מבקש נתונים מהשרת. אם הנתונים אינם מוכנים, השרת שולח הודעת המתנה. הלקוח ממתין ושואל שוב. זה חוזר על עצמו עד שהעבודה מסתיימת.

  2. Long polling הלקוח מבקש נתונים מהשרת. השרת משאיר את הבקשה פתוחה עד שהנתונים מוכנים או עד שמתרחש timeout. הלקוח חייב להתחיל מחדש את הבקשה מיד לאחר קבלת התגובה.

Event streams מטפלים בתהליכים רציפים. תהליכים אלו עוקבים אחר סדר מסוים. זה כולל משימות פשוטות כמו יצירת PDF או משימות מורכבות כמו עסקאות בנקאיות.

השרת פותח ערוץ תקשורת עם הלקוח. הוא שומר על הערוץ הזה פתוח עד שהתהליך מסתיים.

מקור: https://dev.to/rishini_dharan_t/understanding-server-sent-events-3mkd