We’ve been interested in Comet for a long time, dating back to the days of mod_pubsub and early talks on event-driven user interfaces. Now, with the arrival of WebSockets in WebKit-based browsers, and expected in Firefox 4.x and Internet Explorer 9 once the next WebSockets specification draft is completed, and with Comet techniques used by many of the world’s most popular sites, Comet has arrived as a viable necessity for rolling-out real-time capabilities for your web applications.
Comet Server Choices
With so many great options to choose from, the choices can be overwhelming. Our current approach to Comet is as follows.
- cometD – We have invested resources in the Bayeux protocol, the DojoX cometD client, and the Python version of the cometD server. cometD is a popular choice because of its solid performance and the widespread support of the Bayeux protocol across many servers including Jetty (Java), DWR (Java), Erlycomet (Erlang), WebSphere (Java), WebLogic (Java), WebSync (IIS, .Net), and more.
- Hookbox – A popular upstart Comet server written in Python that offers an extremely simple approach for getting started, including the Hosted Hookbox service. It includes support for Comet Session Protocol (CSP), and it extends the js.io microtoolkit for managing a wide variety of messaging protocols.
- Liberator and Lightstreamer – The two most popular commercial Comet servers on the market, Caplin Liberator and Lightstreamer have both improved dramatically over the past decade due to a healthy level of competition. Companies looking for a tried and true approach to the real-time web typically look at these options as well as Jetty and others. All of these options are great to work with, and each is optimized to handle performance in varying ways. While both of these platforms are proprietary and commercial, both offer limited-use free versions for commercial use as well. Watch their creators in action at the recent Comet panel, where I ask them which Comet servers they would suggest if their own product did not exist!
- XMPP – We receive a number of inquiries into XMPP server integration for chat applications. We developed the original dojox.xmpp chat client, and have assisted a number of organizations in making this work with their web applications.
- Others – We’re also fans of Socket.IO, Orbited, Meteor, APE, Google App Engine, Tornado and a number of other projects. We’re happy to help our clients use these servers should they be appropriate for their web application development needs.
With Dojo 1.6, we rely on our new dojox.socket implementation making it easy to work with a wide variety of Comet servers, including the ones listed above.
Bottom line: there is no shortage of excellent Comet servers, so pick one that meets the needs of your application and your development team.
SitePen Comet Services