SSE-Client
A client only library for using EventSource or Server-Sent Events (SSE).
This library implements the interface as described here.
Origin
This packages is a clone of the eventsource
library but because we have not been able to get critical changes
merged in, we have had to release this package instead. It drops the incomplete server functionality and we have
renamed the library to featurehub_sse_client
.
Further, with Dart now supporting target platform detection (when detecting dart.io vs dart.html) it makes more sense
to use the browser specific SSE client (dart:html / EventSource
) as it is native to the browser.
Client usage
For more advanced usage, see the example/
directory.
Creating a new EventSource client is as easy as a single call.
The http package is used under the hood, so wherever this package works, this lbirary will also work.
Browser usage is slightly different.
EventSource eventSource = await EventSource.connect("http://example.com/events");
// in browsers, you need to pass a http.BrowserClient:
EventSource eventSource = await EventSource.connect("http://example.com/events",
client: http.BrowserClient());
If you wish to have it connect only when the first listener attaches (and not otherwise), then pass the
optional parameter openOnlyOnFirstListener
(as true). If you wish to close it after the last listener detaches, then
pass the optional parmeter closeOnLastListener
.
EventSource eventSource = await EventSource.connect("http://example.com/events",
openOnlyOnFirstListener: true, closeOnLastListener: true);
You can also listen for events from the event source now, but you will need to provide your own stream controller. If
you wish to listen to the events as the stream opens and closes, please pass in a StreamController<>
Licensing
This project is available under the MIT license, as can be found in the LICENSE file.