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

The WebSocket protocol


The WebSocket protocol started appearing in browsers in the late 2000 and became an IETF standard in 2011. Once a handshake is negotiated over HTTP, it creates an interactive TCP connection between a server and a browser, allowing for interactive communications with very little overhead. At this point, it no longer bears any resemblance to standard HTTP.

Having a full, two-way open connection between the server and the browser allows much faster and closer to real time communications for web applications. The XMPP WebSocket API was standardized by the IETF in 2014 (for more information, see https://datatracker.ietf.org/doc/rfc7395/) and is now implemented by all of the most popular XMPP servers.

While WebSockets do have the advantages of lower latency and higher throughput, they also have a disadvantage that if the connection is severed, the connection between the server and the browser IT needs to be reconnected and the XMPP client connection must be renegotiated. Therefore...