EventSource class

The interface is web content's interface to server-sent events. An instance opens a persistent connection to an HTTP server, which sends events in text/event-stream format. The connection remains open until closed by calling EventSource.close().

EventTarget

EventSource

Once the connection is opened, incoming messages from the server are delivered to your code in the form of events. If there is an event field in the incoming message, the triggered event is the same as the event field value. If no event field is present, then a generic message event is fired. Unlike WebSockets, server-sent events are unidirectional; that is, data messages are delivered in one direction, from the server to the client (such as a user's web browser). That makes them an excellent choice when there's no need to send data from the client to the server in message form. For example, is a useful approach for handling things like social media status updates, news feeds, or delivering data into a client-side storage mechanism like IndexedDB or web storage.

Warning: When not used over HTTP/2, SSE suffers from a limitation to the maximum number of open connections, which can be specially painful when opening various tabs as the limit is per browser and set to a very low number (6). The issue has been marked as "Won't fix" in Chrome and Firefox. This limit is per browser + domain, so that means that you can open 6 SSE connections across all of the tabs to www.example1.com and another 6 SSE connections to www.example2.com. (from Stackoverflow). When using HTTP/2, the maximum number of simultaneous HTTP streams is negotiated between the server and the client (defaults to 100).

Implemented types
Available extensions
Annotations
  • @JS()
  • @staticInterop

Constructors

EventSource(String url, [EventSourceInit? eventSourceInitDict])
factory

Properties

hashCode int
The hash code for this object.
no setterinherited
onerror EventHandlerNonNull<Event>?

Available on EventSource, provided by the PropsEventSource extension

getter/setter pair
onmessage EventHandlerNonNull<Event>?

Available on EventSource, provided by the PropsEventSource extension

getter/setter pair
onopen EventHandlerNonNull<Event>?

Available on EventSource, provided by the PropsEventSource extension

getter/setter pair
readyState int

Available on EventSource, provided by the PropsEventSource extension

no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
url String

Available on EventSource, provided by the PropsEventSource extension

no setter
withCredentials bool

Available on EventSource, provided by the PropsEventSource extension

no setter

Methods

addEventListener(String type, EventListener? callback, [dynamic options]) → void

Available on EventTarget, provided by the PropsEventTarget extension

close() → void

Available on EventSource, provided by the PropsEventSource extension

dispatchEvent(Event event) bool

Available on EventTarget, provided by the PropsEventTarget extension

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
removeEventListener(String type, EventListener? callback, [dynamic options]) → void

Available on EventTarget, provided by the PropsEventTarget extension

toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

closed int
no setter
connecting int
no setter
open int
no setter