Chapter 2. Designing XMPP Applications
WHAT'S IN THIS CHAPTER?
Differences between HTTP and XMPP
Using BOSH to bridge XMPP and HTTP
Application architecture and protocol design
No matter how wonderful any protocol appears, it can never be the best solution for every problem. Many problems can be solved with XMPP that would be difficult in other protocols, but even XMPP has its sweet spot, outside of which it often makes sense to use other technologies. To make the best XMPP applications possible, you must first understand what problems XMPP is good at, and how you can design your application to leverage XMPP to its fullest.
XMPP's sweet spot is real-time communication, collaboration, and data exchange. Where other protocols pull data, XMPP pushes it, allowing more efficient notification and faster responses to new information. XMPP has native support for social features found in many of today's most popular applications, making it easy for developers to add and build upon people's relationships and communication. The rich, extensible vocabulary of XML stanzas provides a robust and varied set of tools for building many common patterns or composing into your own protocols.
Although XMPP applications can be developed in many contexts, both on the backend and the front-end, this book's applications use the web browser as their environment and web technologies as their implementation. Because web browsers don't speak XMPP natively, only HTTP, you will also discover how XMPP and HTTP be made ...