Module gloo_net::eventsource::futures
source · Available on crate feature
eventsource
only.Expand description
A wrapper around the EventSource
API using the Futures API to be used with async rust.
EventSource is similar to WebSocket with the major differences being:
- they are a one-way stream of server generated events
- their connection is managed entirely by the browser
- their data is slightly more structured including an id, type and data
EventSource is therefore suitable for simpler scenarios than WebSocket.
See the MDN Documentation to learn more.
§Example
use gloo_net::eventsource::futures::EventSource;
use wasm_bindgen_futures::spawn_local;
use futures::{stream, StreamExt};
let mut es = EventSource::new("http://api.example.com/ssedemo.php").unwrap();
let stream_1 = es.subscribe("some-event-type").unwrap();
let stream_2 = es.subscribe("another-event-type").unwrap();
spawn_local(async move {
let mut all_streams = stream::select(stream_1, stream_2);
while let Some(Ok((event_type, msg))) = all_streams.next().await {
console_log!(format!("1. {}: {:?}", event_type, msg))
}
console_log!("EventSource Closed");
})
Structs§
- Wrapper around browser’s EventSource API. Dropping this will close the underlying event source.
- Wrapper around browser’s EventSource API.