Monday, April 18, 2011

JavaScript: JS.IO is Solid, Hookbox Might be the Bee's Knees

Recently, I needed to add realtime (i.e. comet, websockets, flash sockets, etc.) support to an application. JS.IO is a JavaScript library that provides a long polling system using the Comet Session Protocol (CPS). It doesn't try to do what Socket.IO does, i.e. abstract all the various transport mechanisms such as websockets and flash sockets. Rather, it provides long polling and leaves the switch to websockets or flash sockets to the user. There are server-side libraries to integrate with JS.IO using Twisted, Eventlet, Erlang, etc.

My experiences with JS.IO were very positive. Although the documentation was sorely lacking, Michael Carter (the author) was extremely helpful when I was getting started. Furthermore, my testing with crossbrowsertesting.com proved that JS.IO was very reliable across an incredible range of browsers. It was the most reliable comet library I tried. By the way, I was doing this cross-domain.

These days, Michael Carter has started a new project called Hookbox:
Hookbox is a Comet server and message queue that tightly integrates with your existing web application via web hooks and a REST interface.
I blogged about Michael's talk at PyCon. Although Hookbox doesn't perfectly solve all my problems (it doesn't yet having clustering support), I'm extremely hopeful that this will turn out to be a great project!

No comments: