When you think BOSH, you should think XMPP. BOSH, fully spelled out as Bidirectional-streams Over Synchronous HTTP, is a standard that enables you to use an XMPP server over HTTP. If you’ve ever heard about XMPP, it’s probably been in the context of some server side language that was using it — Ruby, Python, Erlang, etc. That’s because they can open up a connection to the XMPP server using the Jabber protocol. In some situations, such as within a web browser, this isn’t possible. That’s where BOSH comes in. Instead of connecting directly from javascript to an XMPP server, the XMPP server can expose an HTTP endpoint, like http://example.org:5218/http-bind. XMPP messages can be sent to this URL as if it were the XMPP server. That enables a client to authenticate against the server, get a roster list and everything else XMPP allows.

In this talk we’ll be going over some of the basics of XMPP, how to get a BOSH server setup, just how close to realtime it actually is and the ideas behind using it rather than polling. If you’re thinking about using XMPP, or have a need for near-realtime communication it should be interesting.