pub struct EventSourceBuilder { /* private fields */ }Expand description
A builder for configuring an EventSource connection.
§Example
use std::{num::NonZeroUsize, time::Duration};
use sse_reqwest_client::{RequestBuilderExt, EventSourceBuilder, SseRetryConfig};
let client = reqwest::Client::new();
let req = client.get("https://api.example.com/stream");
// Create a stream with a strict 1MB payload limit and a custom retry delay
let stream = req.into_event_source_builder()
.retry_config(SseRetryConfig::new())
.initial_reconnection_time(Duration::from_secs(5))
.max_payload_size(NonZeroUsize::new(1024 * 1024).unwrap())
.build();Implementations§
Source§impl EventSourceBuilder
impl EventSourceBuilder
Sourcepub fn new(req: RequestBuilder) -> Self
pub fn new(req: RequestBuilder) -> Self
Creates a new builder wrapping the given reqwest::RequestBuilder.
Sourcepub fn retry_config(self, retry_config: SseRetryConfig) -> Self
pub fn retry_config(self, retry_config: SseRetryConfig) -> Self
Applies a custom retry configuration for automatic reconnections.
Sourcepub fn initial_reconnection_time(self, reconnection_time: Duration) -> Self
pub fn initial_reconnection_time(self, reconnection_time: Duration) -> Self
Sets the base delay to wait before attempting to reconnect.
This delay may be overridden by the server using retry events.
Sourcepub fn max_payload_size(self, max_payload_size: NonZeroUsize) -> Self
pub fn max_payload_size(self, max_payload_size: NonZeroUsize) -> Self
Configures the maximum allowed byte size for a single event payload.
Sourcepub fn last_event_id(self, id: impl Into<Arc<str>>) -> Self
pub fn last_event_id(self, id: impl Into<Arc<str>>) -> Self
Sets the initial Last-Event-ID to send with the first connection request.
This is useful for resuming a dropped stream from a previously saved state.
Sourcepub fn retry_transient_errors(self, retry: bool) -> Self
pub fn retry_transient_errors(self, retry: bool) -> Self
Enables automatic retries for transient HTTP status codes.
By default, the EventSource strictly follows the WHATWG specification and will
permanently close the stream on any non-200 HTTP response.
Setting this to true allows the client to automatically back off and retry when
encountering temporary proxy or server issues. The following status codes are
considered transient:
408 Request Timeout429 Too Many Requests502 Bad Gateway503 Service Unavailable504 Gateway Timeout
Sourcepub fn successful_connection_threshold(self, threshold: Duration) -> Self
pub fn successful_connection_threshold(self, threshold: Duration) -> Self
Sets the minimum duration a connection must remain open to be considered “successful” and reset the exponential backoff counter. Defaults to 5 seconds.
Sourcepub fn build(self) -> EventSource
pub fn build(self) -> EventSource
Consumes the builder and returns the configured EventSource.