Server-sent events

Server-sent events (SSE) is a technology enabling a browser to receive automatic updates from a server via HTTP connection. The Server-Sent Events EventSource API is standardized as part of HTML5[1] by the W3C.

History

The WHATWG Web Applications 1.0 proposal[2] included a mechanism to push content to the client. On September 1, 2006, the Opera web browser implemented this new experimental technology in a feature called "Server-Sent Events".[3][4]

Overview

Server-sent events is a standard describing how servers can initiate data transmission towards clients once an initial client connection has been established. They are commonly used to send message updates or continuous data streams to a browser client and designed to enhance native, cross-browser streaming through a JavaScript API called EventSource, through which a client requests a particular URL in order to receive an event stream.

Web browsers

Web browser support for Server-Sent Events
Browser Supported Notes
Internet Explorer No [5]
Mozilla Firefox Yes Starting with Firefox 6.0 [5]
Google Chrome Yes Starting with Chrome 6 [5]
Opera Yes Starting with Opera 11 [5]
Safari Yes Starting with Safari 5.0 [5]
Microsoft Edge No Under consideration [5]

Libraries

.Net

  • Service Stack EventSource library for .Net, with both server and client implementations.

ASP.NET

  • SignalR - Transparent implementation for ASP.NET.

C

  • HaSSEs Asynchronous server side SSE daemon written in C (It uses one thread for all connected clients).

Erlang

  • Lasse EventSource server handler for Erlang's cowboy
  • Shotgun EventSource client in Erlang

Go

Java

Node.js

Objective C

  • TRVSEventSource - Server-sent events EventSource implementation in Objective-C for iOS and OS X using NSURLSession.

Perl

PHP

Python

  • Python SSE Client - EventSource client library for Python using Requests library.
  • Server Side Events (SSE) client for Python - EventSource client library for Python using Requests or urllib3 library.
  • django-sse - HTML5 Server-Sent Events integration for Python/Django.
  • flask-sse - A simple Flask extension for HTML5 server-sent events support, powered by Redis.
  • sse - Server Sent Events protocol implementation on python2 and python3 in the same codebase.
  • event-source-library - Server Sent Events protocol implementation in python2 with Tornado. Client and server implementations.

Scala

Swift

  • EventSource - Server-sent events EventSource implementation in Swift using NSURLSession

See also

References

  1. "Server-Sent Events". W3C. 17 July 2013.
  2. "Web Applications 1.0 specification".
  3. "Event Streaming to Web Browsers".
  4. Stream Updates with Server-Sent Events, Eric Bidelman, HTML5Rocks website.
  5. 1 2 3 4 5 6 When can I use... Server-sent DOM events
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.