SSE (Server Sent Events)#

class litestar.response.sse.ServerSentEventMessage#

Bases: object

ServerSentEventMessage(data: ‘str | int | bytes | None’ = ‘’, event: ‘str | None’ = None, id: ‘int | str | None’ = None, retry: ‘int | None’ = None, comment: ‘str | None’ = None, sep: ‘str’ = ‘rn’)

__init__(data: str | int | bytes | None = '', event: str | None = None, id: int | str | None = None, retry: int | None = None, comment: str | None = None, sep: str = '\r\n') None#
class litestar.response.sse.ASGIStreamingSSEResponse#

Bases: ASGIStreamingResponse

A streaming response which support sending ping messages specific for SSE.

__init__(*, iterator: StreamType, background: BackgroundTask | BackgroundTasks | None = None, body: bytes | str = b'', content_length: int | None = None, cookies: Iterable[Cookie] | None = None, encoded_headers: Iterable[tuple[bytes, bytes]] | None = None, encoding: str = 'utf-8', headers: dict[str, Any] | None = None, is_head_response: bool = False, media_type: MediaType | str | None = None, status_code: int | None = None, ping_interval: float = 0) None#

A SSE ASGI streaming response.

Parameters:
  • background – A background task or a list of background tasks to be executed after the response is sent.

  • body – encoded content to send in the response body. .. deprecated:: 2.16

  • content_length – The response content length.

  • cookies – The response cookies.

  • encoded_headers – The response headers.

  • 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.

  • ping_interval – The interval in seconds between “ping” messages.

  • is_content_end – Indicates the ending of content in the iterator, e.g., use to stop sending ping events.

async send_body(send: Send, receive: Receive) None#

Emit a stream of events correlating with the response body.

Parameters:
  • send – The ASGI send function.

  • receive – The ASGI receive function.

Returns:

None

class litestar.response.sse.SSEStream#

Bases: Stream

An HTTP response that streams the response data as a series of ASGI http.response.body events.

__init__(content: StreamType[str | bytes] | Callable[[], StreamType[str | bytes]], *, background: BackgroundTask | BackgroundTasks | None = None, cookies: ResponseCookies | None = None, encoding: str = 'utf-8', headers: ResponseHeaders | None = None, media_type: MediaType | OpenAPIMediaType | str | None = None, status_code: int | None = None, ping_interval: float = 0) None#

Initialize the response.

Parameters:
  • content – A sync or async iterator or iterable.

  • background – A BackgroundTask instance or BackgroundTasks to execute after the response is finished. Defaults to None.

  • cookies – A list of Cookie instances to be set under the response Set-Cookie header.

  • encoding – The encoding to be used for the response headers.

  • headers – A string keyed dictionary of response headers. Header keys are insensitive.

  • media_type – A value for the response Content-Type header.

  • status_code – An HTTP status code.

  • ping_interval – The interval in seconds between “ping” messages.

to_asgi_response(app: Litestar | None, request: Request, *, background: BackgroundTask | BackgroundTasks | None = None, cookies: Iterable[Cookie] | None = None, encoded_headers: Iterable[tuple[bytes, bytes]] | 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#

Create an ASGIStreamingResponse from a StremaingResponse instance.

Parameters:
  • app – The Litestar application instance.

  • background – Background task(s) to be executed after the response is sent.

  • cookies – A list of cookies to be set on the response.

  • encoded_headers – A list of already encoded headers.

  • 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_type is already set on the response, this is ignored.

  • request – The Request instance.

  • status_code – Status code for the response. If status_code is already set on the response, this is

  • type_encoders – A dictionary of type encoders to use for encoding the response content.

Returns:

An ASGIStreamingResponse instance.

class litestar.response.sse.ServerSentEvent#

Bases: SSEStream

docs.

__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 = 0) None#

Initialize the response.

Parameters:
  • content – Bytes, string or a sync or async iterator or iterable.

  • background – A BackgroundTask instance or BackgroundTasks to execute after the response is finished. Defaults to None.

  • cookies – A list of Cookie instances to be set under the response Set-Cookie header.

  • 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 – The interval in seconds between “ping” messages.