I've been working with XMPP related stuff now and here's what I've assimilated so far. XMPP and HTTP are two different protocols but when you're trying to implement a browser-based XMPP client, the XMPP traffic would piggyback on HTTP which is called XMPP-over-BOSH.
I came across Punjab which seems to be a pretty popular XMPP/BOSH connection manager and works with the common XMPP servers like ejabberd and OpenFire. These common XMPP servers like ejabberd and Openfire already seem to have inbuilt support for XMPP-over-BOSH therefore, what added functionality does Punjab provide.
Many large sites are using Punjab in their XMPP implementation but I couldn't figure out why they would be using it when you could directly have the in-broswe XMPP client connect to ejabberd or OpenFire.
Thanks.