Struct sse_client::EventSource[][src]

pub struct EventSource { /* fields omitted */ }

Interface to interact with event-streams

Methods

impl EventSource
[src]

Create object and starts connection with event-stream

Example

let event_source = EventSource::new("http://example.com/sub").unwrap();

Close connection.

Example

let event_source = EventSource::new("http://example.com/sub").unwrap();
event_source.close();

Triggered when connection with stream is stabilished.

Example

let event_source = EventSource::new("http://example.com/sub").unwrap();

event_source.on_open(|| {
    println!("Connection stabilished!");
});

Triggered when message event is received. Any event that doesn't contain an event field is considered a message event.

Example

let event_source = EventSource::new("http://example.com/sub").unwrap();

event_source.on_message(|message| {
    println!("Message received: {}", message.data);
});

Triggered when event with specified type is received.

Any connection error is notified as event with type error.

Events with no type defined have message as default type.

Example

let event_source = EventSource::new("http://example.com/sub").unwrap();


event_source.add_event_listener("myEvent", |event| {
    println!("Event {} received: {}", event.type_, event.data);
});

event_source.add_event_listener("error", |error| {
    println!("Error: {}", error.data);
});

// equivalent to `on_message`
event_source.add_event_listener("message", |message| {
    println!("Message received: {}", message.data);
});

Returns client State.

Example

use sse_client::State;
let event_source = EventSource::new("http://example.com/sub").unwrap();

assert_eq!(event_source.state(), State::Connecting);

Returns a receiver that is triggered on any new message or error.

Example

let event_source = EventSource::new("http://example.com/sub").unwrap();

for event in event_source.receiver().iter() {
    println!("New Message: {}", event.data);
}
let event_source = EventSource::new("http://example.com/sub").unwrap();
let rx = event_source.receiver();

let event = rx.recv().unwrap();
//...

Auto Trait Implementations

impl Send for EventSource

impl Sync for EventSource