Real-Time Connections

From RuntimeWiki

Jump to: navigation, search

The W3C, browser vendors and Open Web community are working towards standards that will allow real-time client-server communications, including the ability of the server to push data (http://en.wikipedia.org/wiki/Push_technology) to the client. This feature request calls on the W3C to define a single useful set of standards in this area and for all popular browsers to implement those standards. Today, there are conflicting standards. This feature request calls on the browser vendors to resolve those conflicts, reach agreement and implement.

For the Open Web platform (i.e., HTML+JS+...), server push is an absolute requirement for certain classes of applications, such as real-time dashboards. Because of this acute requirement, a class of technologies known as Comet has emerged, along with various open source and commercial products around those technologies. However, Comet techniques use approaches that many consider to be "hacks" because they take advantage of undocumented and unofficial browser behaviors. By defining a standard, the W3C will allow existing Comet-based open source and commercial software to migrate towards the official standard.

One current conflict is between the HTML5 spec's Server-Sent Events feature and alternate approaches using the Web Sockets feature that is coming out of the Web APIs WG at the W3C. Opera has implemented server-sent events since Opera 8.5. Mozilla seems to be more interested in an alternative approach for solving this problem using multipart XHR (keep an existing HTTP connection open and send new chunks of data) and Web Sockets (keep long-running connections open with an explicit protocol and methodology). See discussion at https://bugzilla.mozilla.org/show_bug.cgi?id=338583.

Contents

Server-Sent Events

Server-Sent Events API for opening an HTTP connection for receiving push notifications (http://en.wikipedia.org/wiki/Push_technology) from a server in the form of DOM events. Server-sent events attempts to avoid the disadvantages of existing "Comet" transports, while making Comet applications much more straight-forward to implement, both on the server side, and in the browser-side JavaScript.

The spec is at:

The Flash platform has supported server-push since Flash5 (2002?), and this technology has proven essential for a small percentage of Flash developers. For several years, many models of mobile phones have supported [http://en.wikipedia.org/wiki/Wireless_Application_Protocol WAP-Push), a companion standard associated with older mobile browsing standards (XHTML-Basic, CSS-Mobile, and ECMAScript Mobile).

Web Sockets

The W3C is working on Web Sockets API that enables Web pages to use the Web Sockets protocol for two-way communication with a remote host.

The spec is at:

Comments on this feature request

IBM feedback: important feature for future

One of IBM's product teams says this would be important to have in the long-term, but are not critical right away.

Personal tools