SSE (Server Sent Events)¶
- class litestar.response.sse.ASGIStreamingSSEResponse[source]¶
Bases:
ASGIStreamingResponseASGI streaming response with optional keepalive ping support for SSE.
- __init__(*, ping_interval: float | None = None, **kwargs: Any) None[source]¶
A low-level ASGI streaming response.
- Parameters:
background¶ – A background task or a list of background tasks to be executed after the response is sent.
content_length¶ – The response content length.
cookies¶ – The response cookies.
encoding¶ – The response encoding.
headers¶ – The response headers.
is_head_response¶ – A boolean indicating if the response is a HEAD response.
iterator¶ – An async iterator or iterable.
media_type¶ – The response media type.
status_code¶ – The response status code.
- class litestar.response.sse.ServerSentEvent[source]¶
Bases:
Stream- __init__(content: str | bytes | StreamType[SSEData], *, background: BackgroundTask | BackgroundTasks | None = None, cookies: ResponseCookies | None = None, encoding: str = 'utf-8', headers: ResponseHeaders | None = None, event_type: str | None = None, event_id: int | str | None = None, retry_duration: int | None = None, comment_message: str | None = None, status_code: int | None = None, ping_interval: float | None = None) None[source]¶
Initialize the response.
- Parameters:
content¶ – Bytes, string or a sync or async iterator or iterable.
background¶ – A
BackgroundTaskinstance orBackgroundTasksto execute after the response is finished. Defaults to None.cookies¶ – A list of
Cookieinstances to be set under the responseSet-Cookieheader.encoding¶ – The encoding to be used for the response headers.
headers¶ – A string keyed dictionary of response headers. Header keys are insensitive.
status_code¶ – The response status code. Defaults to 200.
event_type¶ – The type of the SSE event. If given, the browser will sent the event to any ‘event-listener’ declared for it (e.g. via ‘addEventListener’ in JS).
event_id¶ – The event ID. This sets the event source’s ‘last event id’.
retry_duration¶ – Retry duration in milliseconds.
comment_message¶ – A comment message. This value is ignored by clients and is used mostly for pinging.
ping_interval¶ – Interval in seconds between keepalive pings. When set, an SSE comment (
: ping) is sent at the specified interval to prevent connection timeouts from reverse proxies or clients. Defaults toNone(no pings).
- to_asgi_response(request: Request, *, background: BackgroundTask | BackgroundTasks | None = None, cookies: Iterable[Cookie] | None = None, headers: dict[str, str] | None = None, is_head_response: bool = False, media_type: MediaType | str | None = None, status_code: int | None = None, type_encoders: TypeEncodersMap | None = None) ASGIResponse[source]¶
Create an ASGI streaming response, with optional keepalive ping support.
When
ping_intervalis set, returns anASGIStreamingSSEResponsethat sends periodic SSE comment pings. Otherwise delegates to the parent implementation.- Parameters:
background¶ – Background task(s) to be executed after the response is sent.
cookies¶ – A list of cookies to be set on the response.
headers¶ – Additional headers to be merged with the response headers. Response headers take precedence.
is_head_response¶ – Whether the response is a HEAD response.
media_type¶ – Media type for the response. If
media_typeis already set on the response, this is ignored.status_code¶ – Status code for the response. If
status_codeis already set on the response, this is ignored.type_encoders¶ – A dictionary of type encoders to use for encoding the response content.
- Returns:
An ASGIStreamingResponse (or ASGIStreamingSSEResponse when ping_interval is set).