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

Building our first XMPP component


As part of the node-xmpp suite of modules, there is a piece that allows the development of XMPP components, imaginatively named node-xmpp-component. We'll now use this to start building our first component.

The source code can be found on GitHub at https://github.com/node-xmpp/node-xmpp/tree/master/packages/node-xmpp-component, with usage examples found under the examples folder.

To get started, we'll create a new project folder and install the module from NPM:

cd ~
mkdir first-component
cd first-component
npm i node-xmpp-component

Creating a component and connecting it to the server

Now we will create a new component to extend the capabilities of our existing server. In the first-component folder, create a file named index.js.

To connect the component to the server, we need to provide the module with connection settings, including the JID, we wish to use and the shared secret. As we haven't set up DNS, we will also need to specify the host server.

Add the following...