Traditionally, a web page has to send a request to the server to receive new data; that is, the page requests data from the server. With server-sent events, it's possible for a server to send new data to a web page at any time, by pushing messages to the web page. These incoming messages can be treated as Events + data inside the web page.
Concepts and usage
To learn how to use server-sent events, see our article Using server-sent events.
- Defines all the features that handle connecting to a server, receiving events/data, errors, closing a connection, etc.
|HTML Living Standard
The definition of 'Server-sent events' in that specification.
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
|Feature||Chrome||Edge||Firefox (Gecko)||Internet Explorer||Opera||Safari|
|EventSource support||6||No support||6.0 (6.0)||No support||(Yes)||5|
|Available in shared and dedicated workers||(Yes)||No support||53.0 (53.0)||No support||(Yes)||(Yes)|
|Feature||Android||Firefox Mobile (Gecko)||IE Mobile||Opera Mobile||Safari Mobile|
|EventSource support||4.4||45||No support||12||4.1|
|Available in shared and dedicated workers||(Yes)||53.0 (53.0)||No support||(Yes)||(Yes)|
 But not service workers as yet.
- EventSource polyfill for Node.js
- Remy Sharp’s EventSource polyfill
- Yaffle’s EventSource polyfill
- Rick Waldron’s jquery plugin
- intercooler.js declarative SSE support