Book Image

Practical XMPP

By : Steven Watkin, David Koelle
Book Image

Practical XMPP

By: Steven Watkin, David Koelle

Overview of this book

XMPP (eXtensible Messaging and Presence Protocol) is a messaging protocol that enables communication between two or more devices via the Internet. With this book, developers will learn about the fundamentals of XMPP, be able to work with the core functionality both server-side and in the browser, as well as starting to explore several of the protocol extensions. You will not only have a solid grasp of XMPP and how it works, but will also be able to use the protocol to build real-world applications that utilize the power of XMPP. By the end of this book, you will know more about networking applications in general, and have a good understanding of how to extend XMPP, as well as using it in sample applications.
Table of Contents (16 chapters)
Practical XMPP
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Free Chapter
1
An Introduction to XMPP and Installing Our First Server

XMPP and the new rise of multi-user chat


XMPP is an open standard for federated multi-user communication, with excellent security and well-established user and development communities. There are a lot of commercial services that provide XMPP support and, despite a couple of high-profile departures from the use of XMPP (for example, Google Hangouts and Facebook Chat, which have deprecated their support for XMPP and are using proprietary, walled garden implementations), XMPP represents a solid foundation for building interoperable, multi-user applications.

One great example is Atlassian HipChat, which is based on XMPP. And while HipChat competitor Slack does not use XMPP behind the scenes, it does provide an XMPP gateway, which allows you to connect your Jabber client to a Slack server.

Compared to the late 1990, when the Jabber protocol was started and desktops were prevalent, today's most popular devices are mobile. The XSF is actively working on ways to improve XMPP support for mobile deployments...