0Pricing
WebSockets & Real-Time Systems with Spring · درس

Server-Sent Events مقابل WebSockets

تعلّم كيف توفر Server-Sent Events بثًا لحظيًا أحادي الاتجاه، وكيف تقارنها بـ WebSockets والاستطلاع الطويل، ومتى تختار كل تقنية.

Server-Sent Events مقابل WebSockets درس مجاني في WebSockets & Real-Time Systems with Spring على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في WebSockets & Real-Time Systems with Spring، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة WebSockets & Real-Time Systems with Spring 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Another Real-Time Option

WebSockets are not the only option. Server-Sent Events (SSE) give a simpler, one-way streaming channel from server to client over plain HTTP.

What Are Server-Sent Events?

SSE pushes a continuous stream of text events to the browser over one long-lived HTTP connection, received via the EventSource API. It is one-way only.

The SSE Wire Format

SSE uses a simple, line-based wire format over the text/event-stream content type — just data: and optional event: fields.

HTTP/1.1 200 OK
Content-Type: text/event-stream

data: First update

event: price
data: {"symbol":"ACME","price":42}

Receiving Events in the Browser

The client subscribes with EventSource, and the browser automatically reconnects if the stream drops — no manual retry logic needed.

const source = new EventSource('/stream');
source.onmessage = function (e) {
  console.log('message:', e.data);
};
source.addEventListener('price', function (e) {
  console.log('price event:', e.data);
});

Built-In Reconnection

SSE has reconnection built in: the server sets the delay with a retry: field, and the client sends Last-Event-ID to resume where it left off.

SSE vs WebSockets

SSE vs WebSockets: SSE is one-way over plain HTTP with auto-reconnect and text only; WebSockets are full-duplex, use their own protocol, and support binary.

SSE vs Long Polling

Versus long polling, SSE keeps one connection open and streams many events, avoiding the cost of reopening a connection for every message.

When to Use SSE

Reach for SSE for one-way feeds: live notifications, activity streams, stock tickers, dashboards, job progress, and live scores.

When to Use WebSockets

Choose WebSockets when the client sends frequently too: chat, multiplayer, collaborative editing. If you only need server-to-client, SSE is simpler.

Limitations of SSE

SSE has limits: text only, no binary; browsers cap connections per domain (eased by HTTP/2); and older environments may lack support.

A Decision Helper

A simple rule of thumb decides most cases — need client-to-server or binary? Pick WebSocket. Otherwise, SSE.

def choose_transport(needs_client_to_server, needs_binary):
    if needs_client_to_server or needs_binary:
        return 'WebSocket'
    return 'Server-Sent Events'

print(choose_transport(False, False))  # notifications
print(choose_transport(True, False))   # chat

Quick Check

One feed, one direction, one connection — how well do you know SSE?

Recap

You learned Server-Sent Events: simple one-way streaming over HTTP with auto-reconnect, how they compare to WebSockets and long polling, and when to use each.

الأسئلة الشائعة

هل درس «Server-Sent Events مقابل WebSockets» مجاني؟

نعم — نص درس «Server-Sent Events مقابل WebSockets» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة WebSockets & Real-Time Systems with Spring، انتقل إلى CoddyKit PRO. تتضمن دورة WebSockets & Real-Time Systems with Spring 4 دروس في المجموع.

ماذا ستتعلم في «Server-Sent Events مقابل WebSockets»؟

تعلّم كيف توفر Server-Sent Events بثًا لحظيًا أحادي الاتجاه، وكيف تقارنها بـ WebSockets والاستطلاع الطويل، ومتى تختار كل تقنية. تتمرن على WebSockets & Real-Time Systems with Spring مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ WebSockets & Real-Time Systems with Spring؟

لا تُشترط خبرة سابقة. WebSockets & Real-Time Systems with Spring على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «Server-Sent Events مقابل WebSockets»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس WebSockets & Real-Time Systems with Spring هذا؟

نعم. كل درس في WebSockets & Real-Time Systems with Spring يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. فهم الاتصال الفوري
  2. WebSockets مقابل HTTP Polling
  3. أساسيات بروتوكول WebSocket
  4. Server-Sent Events مقابل WebSockets
← العودة إلى WebSockets & Real-Time Systems with Spring