WHAT'S IN THIS CHAPTER?
Managing rosters and contacts
Best practices for one-on-one communication
Chat state notifications
For many years, XMPP was used primarily for its original purpose of instant messaging. The other uses of the protocol, many of which you will see in upcoming chapters, were just the experiments of a few creative hackers. Today, the instant messaging pieces aren't as fashionable as publish-subscribe, group chat, and collaborative applications, but the IM foundations of XMPP remain extremely important.
Instant messaging systems are first class social networks. Each member has a social graph, their roster, and can communicate and participate with others. These social tools are baked into XMPP at a low level, and they make building social applications quite easy. Unlike many popular social networks, the XMPP network is also federated, connecting many disparate communities together.
Social and community aspects of applications are becoming increasingly important, and therefore it is imperative that you gain an understanding of XMPP's basic social tools. The chat application in this chapter, called Gab, may not be on the cutting edge of software, but its parts can be used to add important social features onto nearly any kind of application. Indeed, many users will expect to see these features as they have grown accustomed to them in other tools.
Instant messaging is the oldest use of XMPP, ...