Back to questions
Junior — Middle
64
Можете объяснить, что такое Server-Sent Events и как они работают?
Answer from AI
sobes.tech AI
Server-Sent Events (SSE) — это технология, которая позволяет серверу отправлять обновления клиенту в режиме реального времени через однонаправленное соединение HTTP. Клиент устанавливает соединение с сервером, и сервер может по этому соединению посылать потоковые данные, например, обновления состояния или события.
Как это работает:
- Клиент отправляет HTTP-запрос с заголовком
Accept: text/event-stream. - Сервер отвечает с типом контента
text/event-streamи начинает отправлять данные в формате событий. - Каждое событие состоит из нескольких строк, например,
data: сообщениеи пустой строки, которая обозначает конец события. - Соединение остается открытым, и сервер может отправлять новые события по мере их появления.
Пример простого SSE-сервера на Python с использованием Flask:
from flask import Flask, Response
import time
app = Flask(__name__)
def event_stream():
count = 0
while True:
yield f"data: Сообщение {count}\n\n"
count += 1
time.sleep(1)
@app.route('/stream')
def stream():
return Response(event_stream(), mimetype='text/event-stream')
if __name__ == '__main__':
app.run(debug=True, threaded=True)
Клиент может подключиться к /stream и получать обновления в реальном времени.