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 включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы обмена данными в реальном времени
  2. WebSockets и опрос HTTP
  3. Основы протокола WebSocket
  4. Server-Sent Events и WebSockets
← Назад к WebSockets & Real-Time Systems with Spring