The Websockets API allows for an entirely new type of web application that until recently was only possible with a normal system application or by using the flash browser plugin. In essence with every communication, the two most important aspects of a Websocket connection between the client and the server are the bidirectional communication and the elimination of the need to transmit HTTP headers on every communication. Previously, when using only web standards (without flash) the only option to retrieve constantly updated content was to long poll the server by looping AJAX requests on a timer.
This approach doesn't scale very well at all due to the overhead of the web server request handling, spinning up a PHP process, handling the routing and authentication, and the HTTP headers that need to be sent for each update. Additionally, developers would need to set an arbitrary delay between AJAX polls and then ultimately, this would cause one of the following...