Monday, January 03, 2005

mod_pubsub

Why isn't this precisely what we need for Multichat?
mod_pubsub Project FAQ: "What is Repubsub?

Previous Mod-pubsub distributions (which are still available on Sourceforge) included a mod-perl server, a standalone Python server, client libraries in 10 programming languages, lots of sample code for the mod-perl server, random tools, badly-maintained docs, and the kitchen sink. However, we found that a large proportion of all the developers who wanted to use Mod-pubsub just wanted the Python server with the JavaScript client and were confused by the other stuff. So Repubsub is a minimal Mod-pubsub package comprised of the Python server and JavaScript client, rewritten for better performance and scalability.

Exactly how do Mod_pubsub's connections stay open?

Mod_pubsub's clients do not poll the server every so often. Instead, like Jabber, a Mod-pubsub server holds open the connection socket to its clients. The main difference between Mod_pubsub and Jabber is that we use standard HTTP as our wire format, whereas Jabber uses its own XML-based protocol. (Yes, we know that people think HTTP is a polling protocol... but it's not necessarily.)

Are there any other products like Mod_pubsub?

Similar projects include Pushlets, Jabber, and XMLHTTP. Unlike mod_pubsub, Pushlets can only maintain a few simultaneous connections, and require Java programming. With mod_pubsub, if you know how to use HTTP, you can do PubSub. Unlike Jabber, which uses its own XML-based protocol, we use standard HTTP. And Mod-pubsub is easier to work with, supports multiple users viewing the same data stream at the same moment, and is more flexible than XMLHTTP.
"